2008 year-end link clearance

Time for the semi-annual link clearance. It appears that the Snipping Tool is also available for Windows XP. How to beat the no-fly list: Change your name. How to beat the low printer ink sensor: electrical tape. Learn about Milliways, the unfinished sequel to the adventure game The Hitchhiker’s Guide to the Galaxy. It’s a…

20

Sorry, I don’t get calls on this phone often

Many years ago, I was in a small meeting: It consisted of the project manager, me, and one other person. Just a quick little status meeting to discuss how things were going. We were a few minutes into the meeting when the project manager’s cell phone rang. Now, this was back in the days before…

7

Crazy or cell phone?

You’ve seen it, I’m sure. People walking down the street talking to themselves. Crazy or cellphone? What really gets me are the people who wear the headsets even when they aren’t talking on the telephone, but rather in anticipation of receiving a telephone call. To those people, I have this to say to you: You’re…

53

Every crash is a potential security vulnerability

Whenever I post about a programming error that can lead to crashes, the security team gets all excited and starts looking for ways to exploit it. For example, when I wrote about the fundamentally flawed DONT_RESOLVE_DLL_REFERENCES flag, the security folks went scouring through the Windows source code looking for anybody who passed that flag, and…

8

Undecorating names to see why a function can’t be found

Here’s a problem inspired by actual events. When I build my project, it compiles fine, but it fails during the link step with an unresolved external: program.obj : error LNK2001: unresolved external symbol “public: virtual wchar_t const * __thiscall UILibrary::PushButton::GetName(class UILibrary::StringHolder * *)” (?GetName@PushButton@UILibrary@@UAEPB_WPAPAVStringHolder@2@@Z) The function I’m trying to call exists in the source code…

28

Why are all computers shown with a Printers folder even if printer sharing is disabled?

When you visited a computer on the network by typing \\computername into the address bar, Explorer showed you a Printers folder if the computer had printer sharing enabled. But starting in Windows Vista, the Printers folder is shown regardless of whether the remote computer is sharing any printers. Why did this change? Communicating with the remote…

27

Then again, sometimes the improvement is merely incremental

Several years ago, the security department sent out a company-wide memo: Over the next few months, we will be upgrading the card readers on all of our major campuses. The old card readers show a solid red light when the door is locked, whereas the new card readers show a blinking red light. Aw-right, a…

18

Foiled by my withered hand

A few years ago, some email was sent out to the product team asking for a volunteer hand model to demonstrate how to open the Windows Vista box. Alas, I withdrew myself from consideration due to my withered hand.

16

Misheard lyrics as applied to Christmas songs

While visiting my young nieces, we sang some Christmas songs, and when it came to sing Toyland, the four-year-old sang it with misheard lyrics: “Toi-let! Toi-let!”

6

Why isn’t there a SendThreadMessage function?

Here’s an interesting customer question: Windows has PostMessage and SendMessage. It also has PostThreadMessage but no SendThreadMessage. Why isn’t there a SendThreadMessage function? Am I forced to simulate it with an event? What would this imaginary SendThreadMessage function do? Recall that SendMessage delivers the message directly to the window procedure; the message pump never sees…

42