Why is there sometimes a long delay between pressing a hotkey for a shortcut...
Via a customer liaison, we received a problem report from a customer. The customer is facing issues with delayed desponses to opening a .lnk file by pressing its keyboard shortcut hotkey. This delay...
View ArticleHow does Explorer calculate the folder size information in the folder tooltip?
This information is accurate as of Windows 7; the algorithm may change for future versions of Windows. The information is being provided for the edification of computer network administrators, who are...
View ArticleHow does the MultiByteToWideChar function treat invalid characters?
The MB_ERR_INVALID_CHARS flag controls how the MultiByteToWideChar function treats invalid characters. Some people claim that the following sentences in the documentation are contradictory:...
View ArticleWhy are the Windows 7 system notification icons colorless?
Mike wondered why the system notification icons went colorless in Windows 7 and why they went back to regular tooltips instead of the custom tooltips. I don't know either, so I asked Larry Osterman,...
View ArticleWhy can't I use the file sharing wizard if I exclude inheritable permissions...
In Windows Vista and Windows Server 2008, if you go to a the advanced security settings for a directory and uncheck "include inheritable permissions from this object's parent", then go back to the...
View ArticleHow do I hide a window without blocking on it?
A customer was working on improving their application startup performance. They found that if their application was launched immediately after a fresh boot, the act of dismissing their splash screen...
View ArticleCheap amusement: Searching for spelling errors in the registry
One source of cheap amusement is searching for spelling errors in the registry. For example, one program tried to register a new file extension, or at least they tried, except that they spelled...
View ArticleWhen you crash on a mov ebx, eax instruction, there aren't too many obvious...
A computer running some tests encountered a mysterious crash: eax=ffffffff ebx=00000000 ecx=038ef548 edx=17b060b4 esi=00000000 edi=038ef6f0 eip=14ae1b77 esp=038ef56c ebp=038ef574 iopl=0 nv up ei pl nz...
View ArticleWarum deine Mutter Deutsch spricht
This upcoming Sunday is Mother's Day in the United States. In recognition of the holiday last year, a local church displayed the following message on its message board: "God couldn't be / everywhere /...
View ArticleWhat is the historical reason for MulDiv(1, -0x80000000, -0x80000000)...
Commenter rs asks, "Why does Windows (historically) return 2 for MulDiv(1, -0x80000000, -0x80000000) while Wine returns zero?" The MulDiv function multiplies the first two parameters and divides by...
View ArticleMicrospeak: The parking lot
Mike Dunn wonders what the Microspeak term parking lot means. I'm not familiar with this term either, and the first document I turned up during my search was a PowerPoint presentation that said "Avoid...
View ArticleSure, 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 installing the application, the "Run As"...
View ArticleHow to view the stack of threads that were terminated as part of process...
As we saw some time ago, process shutdown is a multi-phase affair. After you call ExitProcess, all the threads are forcibly terminated. After that's done, each DLL is sent a DLL_PROCESS_DETACH...
View ArticleCharles 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 old that even I used it to learn Windows...
View ArticleHow to view the stack of threads that were terminated as part of process...
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 user-mode debugger, and it's actually a...
View ArticleWhat 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 extremely simple. There were just keys, no...
View ArticleWhy 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 other buttons in place." I don't know why...
View ArticleGUIDs 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 M (jury selection), and their proposed algorithm...
View ArticleHow do I prevent unchecked checkboxes in my listview control from disappearing?
A customer asked, "I have a listview control in report view with the LVS_EX_CHECKBOXES extended style. I noticed that unchecked checkboxes are not visible until I hover over the corresponding item....
View ArticleThe extern "C" specifier disables C++ mangling, but that doesn't mean it...
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 will expose the function with C++ name...
View Article