The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Sep 6, 2006
Post comments count 0
Post likes count 0

In case of fire, go to lunch

Raymond Chen

Late one morning, the fire alarm went off at work. Everybody dutifully filed out of the building and waited for the all-clear signal. A few of us looked at each other and said, "Let's go to lunch." "I'll drive." "Shotgun!"

Sep 6, 2006
Post comments count 0
Post likes count 1

You already know what your target architecture is (or at least you should)

Raymond Chen

Sometimes the questions I see make me shake my head in wonderment. How do I determine programmatically what processor architecture my program was compiled for? I want the x86 version of my program to behave differently from the ia64 version. Is there some API I can call? Note that this person isn't asking whether the program is running on 64-bit Windows. This person wants the program to detect whether it was compiled with an x86 compiler, an ia64 compiler, an amd64 compiler, or whatever. But why do you need an API for this? You already know what your target architecture is because you compiled it yourself...

Sep 5, 2006
Post comments count 0
Post likes count 0

Just change that 15 to a 1

Raymond Chen

It would be nice and easy to just change that 15 to a 1. If only it were that simple. In the case described in that article, it's not that a single operation was attempted fifteen times in a loop. Rather, the fifteen operations were scattered all over the program. Suppose, for example, that the network operation was "Get the attributes of this file." The program might be filling in a file listing with several columns, one for the icon, another for the file name, another for the file author, and the last one for the last-modified time. Well, that doesn't access the same file fifteen times. Oh wait, there'...

Sep 4, 2006
Post comments count 0
Post likes count 0

I think I've just broken the internet

Raymond Chen

On our internal blogging discussion mailing list, John Kennedy explained that he was trying to set up a video blog but somehow he ended up including the entire video into his RSS feed. He managed to fix the problem, but apologized: If the internet is broken, it was my fault. That was funny enough, but Keith Combs chimed in with some technical advice, and then added, If you manage to break the internet, it won't be the first time.

Sep 1, 2006
Post comments count 0
Post likes count 0

You're white. Do you want to be in my friend's soap opera?

Raymond Chen

What does a Mandarin-speaking American woman in Beijing do? If you're Rachel DeWoskin, you serendipitously wind up the star of a daytime Mandarin-language soap opera called Foreign Babes in Beijing, a show that takes all the Western stereotypes (from the Chinese point of view) and milks them for all their melodramatic worth. (They probably watched too much Dallas.)

Sep 1, 2006
Post comments count 0
Post likes count 1

On the unanswerability of the maximum number of user interface objects a program can create

Raymond Chen

The answer to the question "What is the maximum number of window classes a program can register?" is not a number. Most user interface objects come from a shared pool of memory known as the "desktop heap". Although one could come up with a theoretical maximum number of window classes that can fit in the desktop heap, that number is not achievable in practice because the desktop heap is shared with all other user interface objects on the desktop. For example, menus and windows go into the desktop heap, as well as more obscure objects like active window enumerations, window positioning handles used by , and even h...

Aug 31, 2006
Post comments count 0
Post likes count 0

The wisdom of seventh graders: Contributions to class discussion

Raymond Chen

(In the continuing sporadic series on the wisdom of seventh grade students.) My friend the seventh grade teacher once had to deal with a class that had gotten out of hand by assigning the students a short essay in which they had to address three questions: One of the more disruptive students answered the questions thus:

Aug 31, 2006
Post comments count 0
Post likes count 0

The dialog class goes under the sneaky name WC_DIALOG

Raymond Chen

An anonymous commenter wanted to know how to create a dialog box with . The window class for dialog boxes is . I'm not quite sure why anybody would want to create a dialog box this way, but there you have it.

Aug 30, 2006
Post comments count 0
Post likes count 0

How do you wash soap?

Raymond Chen

Steve Makofsky wondered, "How do you throw out a garbage can?". Along similar lines, I always wondered how you washed soap.