The Visual Effects dialog box just tells you what you want to hear
The Visual Effects dialog box has three options, "Let Windows choose what's best for my computer," "Adjust for best appearance," and "Adjust for crappiest appearance best performance." Some people...
View ArticleNon-psychic debugging: Looking for leaked objects by their vtable
A programmer on the GHI team reported that they were hitting an assertion failure using an internal library and asked for help debugging it. ABC!CFactoryBase::AssertZeroRef+0x2e...
View ArticleJan-Keno Janssen decides to rent a bicycle to get around Las Vegas; this is...
Jan-Keno Janssen writes about technology for German computer magazine c't. He covered the Consumer Electronics Show in Las Vegas earlier this month. And that means horrific traffic that turns a trip...
View ArticleHow can I make a callback function a member of my C++ class?
Instead of a Little Program today, I'm going to answer a Little Question. This is a common beginner question, but I figure I'll just spell it out right here for posterity. First of all, you probably...
View ArticleThe 2014/2015 Seattle Symphony subscription season at a glance
For many years, I've put together a little pocket guide to the Seattle Symphony subscription season for my symphony friends to help them decide which ticket package they want. For a few years now, we...
View ArticleWhy does my setup program detect the operating system incorrectly the second...
A customer reported that when their application called the GetVersionEx function, it sometimes reported incorrect values. Specifically, the logs collected from clients shows that the first time the...
View ArticleOne of my favorite error codes: Optional parameter missing
The error Optional parameter missing sounds awfully paradoxical, doesn't it. I mean, if the parameter is optional, why are you complaining that it's missing? This KB article explains why,...
View ArticleCan process IDs be greater than 64000? Because we're seeing process IDs...
A customer asked what to me was a very strange question. Can process IDs be greater than 64000? Because we're seeing process IDs greater than 64000. This is a strange question because the answer is...
View ArticleNon-psychic debugging: If somebody's complaining that a collection should be...
A programmer on the GHI team (yes, the same GHI team) reported that they were hitting an assertion failure using an internal library and asked for help debugging it. // All factories should be...
View ArticleWhy chicken wings dominate Super Bowl snack time
This upcoming Sunday is the biggest sports day of the year in the United States: The championship game for the professional American Football league. The entire country grinds to a halt. The most...
View ArticleHow can I make a WNDPROC or DLGPROC a member of my C++ class?
Continuing my discussion of How can I make a callback function a member of my C++ class? Common special cases for wanting to use a member function as a callback function are the window procedure and...
View ArticleThe new research citation format, if students got to design it
References¹ The Internets.² Ibid.³ Ibid.
View ArticleRacing email against a snail
The Windows team double-dogfoods Windows Server and Exchange Server, and while this is good for both products, it can be quite frustrating when something goes wrong. I remember back in the early days...
View ArticleHow do I prevent folders like My Pictures from being recreated?
Another converse of How do I programmatically create folders like My Pictures if they were manually deleted? is How do I prevent folders like My Pictures from being recreated? Starting in Windows 7,...
View ArticleIf an asynchronous I/O completes synchronously, is the hEvent in the...
Yes. When an I/O completes (whether synchronously or asynchronously), the event is signaled and completion status notifications are queued. The GetOverlappedResult/Ex function can be used to wait on...
View ArticleThe United States Team uniforms for the opening ceremony is rather hideous,...
By the time you read this, the opening ceremony for a large sporting event organized by a lawsuit-happy organization may already have taken place. As part of the ceremony, the team representing the...
View ArticleVirtualLock locks your memory into the working set, even if your threads are...
Today, a correction to an earlier article on VirtualLock. When you lock memory with VirtualLock, it will remain locked even if all your threads are blocked. As noted in the Follow-up section at the...
View ArticleExecute a file as if it were a program, even though its extension is not EXE
Today's Little Program executes a file as if it were a program, even though its extension is not EXE. The idea here is to prevent somebody from running your program by accident, so you give it an...
View ArticleExcuses I learned from babies
I was visiting a friend of mine, and his young daughter was being unusually cranky. He explained, "Oh, she's teething." I filed that away as an excuse I could use the next time I felt cranky. "Sorry...
View ArticleMicrospeak: Party, in various forms
Remember, Microspeak includes words and phrases in general use, as long as they are employed at Microsoft at a higher rate than in the general population, or in specific situations that may not be...
View Article