The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
What was the nature of the feedback that resulted in the change to the highlighting model for Explorer navigation pane?
Gabe wanted to know the nature of the feedback that resulted in the change to Explorer navigation pane. Historically, Explorer had a navigation pane that contained a folder tree, and the navigation pane could be toggled on and off. From observations and usability studies, we observed that users in general found this toggling burdensome. People liked the folder tree as a form of browsing, but they didn't like the fact that the folder tree kept changing as they navigated through the system. In other words, they liked the fact that they could change the folder tree by expanding and collapsing nodes, but they wante...
How can I customize which notification icons are displayed by default on a new installation?
There's a setting for it, but you need some help from the application.
Why was HDS_FILTERBAR added to the common controls if nobody uses it?
Mike Dunn was curious about the intended purpose of . The style adds a row below the header control consisting of an edit control and a funnel icon. The funnel icon presumably represents a coffee filter, because after all, everybody in the world drinks coffee as much as people in Seattle. (Developers think they're so clever.) Mike points out that new features of the common controls were nearly always used by whatever version of Windows or Internet Explorer shipped that new version. The style is a notable exception. What happened? I believe the feature was originally intended for use by Active Directory; m...
Why does Windows keep showing the old indirect strings even after I update the binary?
If your application uses indirect localized string resources, and you update the application, you may find that Windows keeps using the old string from the previous version of the application. For example, suppose that you set the localized name for a shortcut to , and in version 1 of your program, you have For version 2, your marketing team decides that the program should really be called Contoso Document System, so you change the resource file to read The user upgrades to version 2 of your program, but the shortcut on the Start menu still reads Contoso Document Services. What's going on?...
What does the minus sign in indirect localized string resources mean?
The syntax for indirect localized string resources is filenamestringId, optionally followed by a semicolon and a comment. A customer wanted to know what the minus signs stands for. The minus sign doesn't "stand for" anything. It's just part of the syntax. It's like asking what the semicolon at the end of a C statement stands for. It doesn't stand for anything; it's just part of the rules for C statements. (And if the minus sign has to stand for something, what does the comma stand for?) Okay, so maybe the question was really "Why does the syntax for indirect localized strings include a minus sign? Isn't the co...
Instead of creating something and then trying to hide it, simply don't create it in the first place
A customer had a question, which was sort of I bet somebody got a really nice bonus for that feature in reverse. A customer is asking if there is a way to programmatically control the icons in the notification area. Specifically, they want the setting for their notification icon to be "Only show notifications" rather than "Show icon and notifications" or "Hide icon and notifications." Fully charged (100%) Network Fabrikam Internet access Volume Speakers: 10% Contoso Resource Notification No new resources found. It's a good thing th...
Why don't music files show up in my Recent Items list?
If you double-click a music file, it doesn't show up in your Recent Items list. What's so special about music files? The technical reason is that the file types are registered with the flag, which means that they don't show up in the Recent Items list (formerly known as Recent Documents), and they don't show up in the Recent or Frequent section of Windows Media Player's Jump List. Okay, fine, but that's like answering "Why is there a door here?" with "Because the blueprints said that there should be a door there." You really want to know why the architect decided to put a door there. The reason why music fil...
What's the difference between Text Document, Text Document – MS-DOS Format, and Unicode Text Document?
Alasdair King asks why Wordpad has three formats, Text Document, Text Document - MS-DOS Format, and Unicode Text Document. "Isn't at least one redundant?" Recall that in Windows, three code pages have special status. Three text file formats. Three encodings. Hm... I wonder... As you might have guessed by now, the three text file formats correspond to the three special code pages. Now it's just a matter of deciding which one matches with which. The easiest one is the Unicode one; it seems clear that Unicode Text Document matches with Unicode. Okay, we now have to figure out how Text Document and Text Doc...
How do I find out which process has a file open?
Classically, there was no way to find out which process has a file open. A file object has a reference count, and when the reference count drops to zero, the file is closed. But there's nobody keeping track of which processes own how many references. (And that's ignoring the case that the reference is not coming from a process in the first place; maybe it's coming from a kernel driver, or maybe it came from a process that no longer exists but whose reference is being kept alive by a kernel driver that captured the object reference.) This falls into the category of not keeping track of information you don't n...