The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Welcome to The New Old New Thing, 2010 edition
The blog server folks tell me that the upgrade is complete. Thanks for your patience. I'm told they will throw the switch early this afternoon. The new URL for this site after the switchover will be http://blogs.msdn.com/b/oldnewthing/, although there should be 301 redirects at all the old URLs so your existing links will still work. My colleague Michael Kaplan might say that the extra B is for badass. Or maybe it stands for bewildering. Or broken. Speaking of broken, you'll probably find a bunch of broken links, ugly layout, and other lameness (Pre-emptive snarky comment: that is, lameness beyond the normal l...
What's the deal with What's This??
Via the suggestion box, Matthew Douglass-Riley wonders about the history and fate of the What's This? button. (The same question was repeated by an anonymous coward.) The What's This? button (more formally known as the contextual help caption button) is turned on by the extended style and takes the form of a question mark. When the user clicks the button, the cursor changes to an arrow with a question mark, and when the user clicks on a child window, a message is delivered to that window. As originally written, the intended response is for the window to call the function with the command and information d...
SHAutoComplete giveth, and SHAutoComplete taketh away
The function lets you attach autocomplete functionality to an edit control, and there are flags that describe what sources you want the autocomplete to draw from. If you call a second time, the second set of flags replace the original flags. The flags do not accumulate. For example, if you first call , and then you later call , the result is that the autocompletion uses only the URL history. This replacement behavior (as opposed to accumulation behavior) is handy if you want to remove an autocompletion that you previously added. You just call a second time and leave off the flags for autocomplete sources yo...
We've traced the call and it's coming from inside the house: Operating system names
As the Windows Server 2003 project wound down, somebody reported a serious bug that went something like this: Subject: Windows Server 2003 still refers to itself as Windows .NET Server Previous versions of Windows report the product name correctly, but Windows Server 2003 still calls itself "Windows .NET Server" instead of Windows Server 2003. I've attached a copy of the program you can use to reproduce the problem. Indeed, if you run the program attached to the bug report, it does report when run on Windows Server 2003. Now to find out where gets the product name from, so we can find and fix ...
If you can detect the difference between an emulator and the real thing, then the emulator has failed
Recall that a corrupted program sometimes results in a "Program too big to fit in memory" error. In response, Dog complained that while that may have been a reasonable response back in the 1980's, in today's world, there's plenty of memory around for the MS-DOS emulator to add that extra check and return a better error code. Well yeah, but if you change the externally visible behavior, then you've failed as an emulator. The whole point of an emulator is to mimic another world, and any deviations from that other world can come back to bite you. MS-DOS is perhaps one of the strongest examples of requiring abso...
No good deed goes unpunished, part 2, redux
I noted some time ago that I have taken to "blaming" Exchange when someone assumes that my reply to a thread on a distribution list implies that I have taken responsibility for resolving their problem. One of my colleagues in another group is in a similar situation with respect to a different product, and he has taken to using the same basic formulation when sending issues back to the distribution list. One variation he used a while back gave me a chuckle: We need a new Exchange server. This one keeps stripping the mailing list.
An insight into the balance between forgiveness and permission
One of my colleagues shared this valuable insight into the balance between forgiveness and permission, which he in turn learned from a high-level manager in his organization: The statement that it is better to ask for forgiveness than to obtain permission is true 90% of the time. The key to success is knowing where the other 10% is.
If Windows 3.11 required a 32-bit processor, why was it called a 16-bit operating system?
Because it mostly ran 16-bit applications.
Maxing out the upsell-o-meter
Many grocery stores in the United States have a printer next to the cash register which prints out coupons customized to your purchases. If you buy the house brand of spaghetti, it might print out a coupon for a slightly more expensive brand of spaghetti. The goal with these coupons is to get you to try a fancier (and therefore more profitable) version of the product in the hopes that you will like it and switch. For reasons not important to the story, one of my colleagues needed to buy baby formula for his newborn son. He and his wife carefully researched the options and decided that the best brand to get was X...