Appearing to succeed is a valid form of undefined behavior, but it's still...
A customer requested a clarification on the MSDN documentation for the HeapFree function. The MSDN documentation says that if the lpMem parameter is NULL, then the behavior is undefined. Is this true?...
View ArticleThere's also a large object heap for unmanaged code, but it's inside the...
Occasionally, a customer will ask for assistance explaining some strange heap behavior, or at least heap behavior that appears to be strange if you assume that the heap behaves purely classically. I...
View Article2011 Q3 link clearance: Microsoft blogger edition
It's that time again: Linking to other Microsoft bloggers. Aaron Margosis investigates The Case of the Mysterious Law Manager Startup Error. John Guin shares the Robinson Crusoe Theory of testing and...
View ArticleDo not access the disk in your IContextMenu handler, no really, don't do it
We saw some time ago that the number one cause of crashes in Explorer is malware. It so happens that the number one cause of hangs in Explorer is disk access from context menu handlers (a special case...
View ArticleAdjusting your commute to avoid being at work quite so much
Commenter Bernard remarked that he moved from one side of the company campus to the other, and his commute distance (and time) was cut in half. That reminds me of a short story from a now-retired...
View ArticleBeyoncé, the giant metal chicken has a Facebook page
In my 2011 mid-year link clearance, I linked to the story And that's why you should learn to pick your battles. I thought that was the end of the story, but no, it's the gift that keeps on giving....
View ArticleThe unattend file lets you configure Windows while it's installing, and in...
Some Windows settings can only be established as part of the installation process. This is done with a so-called unattend file. (Remember, no matter where you put an advanced setting, somebody will...
View ArticleWhy can't I move the Program Files directory via the unattend file?
We saw last time that the unattend file lets you change some Windows configuration settings that cannot be changed after Setup is complete. But one of the things you can't change is the location of...
View ArticleDuring process termination, slim reader/writer locks are now also electrified
Some time ago I mentioned that during process termination, the gates are now electrified: If you attempt to enter a critical section that is owned by a thread that was terminated by an earlier phase...
View ArticleHow do I access a file without updating its last-access time?
The first problem with discussing file last-access time is agreeing what you mean by a file's last-access time. The file system folks have one definition of the file last-access time, namely the time...
View ArticleWhy does copying a file to my USB thumb drive say that the parameter is...
Consider the following sequence of operations, assuming that F: is a USB thumb drive with plenty of disk space. C:\Users\Bob\Downloads> copy readme.txt F:\ 1 file(s) copied....
View ArticleMicrospeak: Bug jail
Bug jail is not a place where bugs are sent as punishment for their crimes. Rather, it's a (virtual) place that developers are sent when they have too many bugs. Project management establishes some...
View ArticleIs there a 2048 character limit for OFN_ALLOWMULTISELECT in MFC or isn't there?
The MFC documentation for CFileDialog contains the following strange warning: When the user allocates their own buffer to accommodate OFN_ALLOWMULTISELECT, the buffer can't be larger than 2048 or...
View ArticleHow do I set an accessible name on an unlabeled control?
A customer asked for advice on accessibility. This was great news, because it meant that somebody actually cared about accessibility! We have a property sheet page that contains an unlabeled list...
View ArticleThe question mark lets you make up anything you like
A trend I've noticed in journalism is to make some sort of outrageous statement, but then stick a question mark at the end to disavow any responsibility for the statement. By changing it to a...
View ArticleWhen your vice president tells you to stop replying to a mail thread, you...
Some time in the early part of this century, somebody sent a message to the Windows NT Development Announcements mailing list at Microsoft. It went something like, "My car was parked in «location X»...
View ArticleWhy is there a CSIDL_DESKTOP value if you need the desktop in order to get it...
John asks why there is a special constant CSIDL_DESKTOP defined for the desktop. After all, in order to use CSIDL_DESKTOP, you need to call SHGetDesktopFolder and then bind to it. What's the point...
View ArticleSeeing the world through arbitrage-colored glasses
On the mailing list with a negative service level agreement, one of my colleagues posted the message Free Nerf guns in my office. I've decided I'm no longer a collector. Not one to miss the...
View ArticleWhy do some infotips repeat the name of the item as well as the infotip?
A customer noticed that when the user hovered over their application name in the Start menu, the infotip that pops up includes their product name: ♫ Contoso Professional Music Studio Deluxe 2010...
View ArticleNo, modifying the DLLs that come with Windows is not supported
From the I can't believe I had to write that file comes this question from a customer: Our customer is modifying the ABC.DLL file that comes with Windows in order to accomplish XYZ. Is this supported?...
View Article