Psychic debugging: Why your IContextMenu::InvokeCommand doesn't get called...
A customer was having trouble with their IContextMenu implementation. They observed that their IContextMenu::QueryContextMenu method was being called, but when the user selected their menu item,...
View ArticleThe annual sporting event involving a football that dare not speak its name...
I always wonder about people who are so protective of the name of their event that they don't even allow people to mention it by name. One of the most notorious examples is the organization which runs...
View ArticleObtaining the parsing name (and pidl) for a random shell object
The parsing name for a shell item is handy, because it lets you regenerate the item later. Actually, the pidl for the shell item is even better, because that is the official way of saving and...
View ArticleOld trace logs in your dreams
I dreamed that I was archiving old data. Some came off an old CP/M floppy disc. Another was an IntelliTrace debug log from the 1980's. Back then, IntelliTrace recorded the history onto index cards,...
View ArticleOptimizing the Chili's dining experience
Back in the days of Windows 95, one of my colleagues paid a visit to his counterparts over in the Windows NT team as part of a continuing informal engagement to keep the Windows NT developers aware of...
View ArticleThe curious pattern of pre-emptively rejecting the solution to your problem
A frustrating pattern that shows up occasionally in customer questions is the case where the customer poses a problem, and pre-emptively rejects the mechanism explicitly designed to solve that...
View ArticleHow can I register my context menu command for all file types *except* one,...
We saw that you can register your context menu under * to make it apply to all files. But what if you want it to apply to all files except one? For example, your command might be "Convert to Widget"...
View ArticleOnce you know something can be done, doing it is much easier
Unfortunately, I don't remember the name of the star of this story, but I'm told that there was a notable mathematician who believed the Perfect Graph Conjecture to be false and spent many years...
View ArticleFor the Nitpickers: Enhanced-mode Windows 3.0 didn't exactly run a copy of...
Generally speaking, Enhanced-mode Windows 3.0 ran a copy of standard-mode Windows inside the virtual machine. This statement isn't exactly true, but it's true enough. Commenter Nitpicker objected,...
View ArticleThe Essential Guide To Dim Sum
The folks over at BuzzFeed Food have put together this marvelous Essential Guide To Dim Sum. The field guide includes pictures of dim sum offerings, organized by food preparation style, then...
View ArticleDisplay an overlay on the taskbar button
Today's "Little Program" displays an overlay on the taskbar button. I've seen some people call this a "badge", but "overlay" is the official term. Start with our scratch program and make the following...
View ArticleLet me take this shortcut across Lake Saskatchewan
I dreamed that I had to drive from Los Angeles to Berkeley to catch my flight home. To do this, I used a product from a local startup company: A computerized map of the Bay Area. There were two routes...
View ArticleWhat's the story of the onestop.mid file in the Media directory?
If you look in your C:\Windows\Media folder, you'll find a MIDI file called onestop. What's the story behind this odd little MIDI file? Aaron Margosis considers this file a security risk because "if...
View ArticleHow do I launch a file as if it were a text file, even though its extension...
You might have a program that generates log files or other text content with an extension other than .txt. You naturally might want to open these documents in the user's default text editor. You might...
View ArticleIf you can't find the function, find the caller and see what the caller jumps to
You're debugging a program and you want to set a breakpoint on some function, say, netapi32!DsAddressToSiteNameW, but when you execute the bp netapi32!DsAddressToSiteNameW command in the...
View ArticleDebug session: Why is an LPC server not responding?
A particular scenario was hanging, and the team responsible for the scenario debugged it to the point where they saw that their X component was waiting for their Y component, which was waiting for...
View ArticleDisplay control buttons on your taskbar preview window
Today's "Little Program" displays a button on the taskbar preview window. For now, the button increments a number, because incrementing numbers is so retro. Welcome, visitor number 00314 Start with...
View ArticleI speak German better in my dream than I do in real life
I dreamed that I was at a large trade show, where everybody had cleared the center of the main floor to make room for an impressive real-time holography demo. After the demo was over, everybody moved...
View ArticleMicrospeak: bubble up
Bubble up is the name of a soft drink, but at Microsoft, it means something else. (Remember, Microspeak is not just terms used exclusively within Microsoft, but also terms used at Microsoft more often...
View ArticleYou can ask the compiler to answer your calling convention questions
If you want to figure out some quirks of a calling convention, you can always ask the compiler to do it for you, on the not unreasonable assumption that the compiler understands calling conventions....
View Article