The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
In case of fire, go to lunch
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!"
You already know what your target architecture is (or at least you should)
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...
Just change that 15 to a 1
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'...
I think I've just broken the internet
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.
You're white. Do you want to be in my friend's soap opera?
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.)
On the unanswerability of the maximum number of user interface objects a program can create
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...
The wisdom of seventh graders: Contributions to class discussion
(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:
The dialog class goes under the sneaky name WC_DIALOG
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.
How do you wash soap?
Steve Makofsky wondered, "How do you throw out a garbage can?". Along similar lines, I always wondered how you washed soap.