The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
The extern “C” specifier disables C++ mangling, but that doesn’t mean it disables mangling
The MSDN documentation on dllexport contains the following enigmatic paragraph, or at least did at the time I wrote this article: dllexport of a C++ function...
How do I prevent unchecked checkboxes in my listview control from disappearing?
A customer asked, "I have a listview control in report view with the extended style. I noticed that unchecked checkboxes are not visible until I hover over the...
GUIDs are designed to be unique, not random
A customer liaison asked, "My customer is looking for information on the GUID generation algorithm. They need to select N items randomly from a pool of&...
Why is the Close button in the upper right corner?
Chris wants to know how the close button ended up to the right of the minimize and maximize/restore buttons. "In OS/2, it is on the left, which left the two ...
What was the registry like in 16-bit Windows?
Commenter Niels wonders when and how the registry was introduced to 16-bit Windows and how much of it carried over to Windows 95. The 16-bit registry was...
How to view the stack of threads that were terminated as part of process teardown from user mode
Last time we saw how to view the stack of threads that were terminated as part of process teardown from the kernel debugger. You can do the same thing from a ...
Charles Petzold is back with another edition of Programming Windows
Back in the day (and perhaps still true today), Charles Petzold's Programming Windows was the definitive source for learning to program Windows. The book is so ...
How to view the stack of threads that were terminated as part of process teardown from the kernel debugger
As we saw some time ago, process shutdown is a multi-phase affair. After you call , all the threads are forcibly terminated. After that's done, each DLL is ...
Sure, we do that: Context menu edition
A customer reported a problem that occurred only when they installed a particular application. If they uninstalled it, then the problem went away. After ...