So, um, what are we looking at?
Some of my relatives from Vancouver, British Columbia enjoy going on cruises. During one cruise along the Alaska coast, they found a large number of passengers gathered on the viewing deck and gazing...
View ArticleHow can I programmatically inspect and manipulate a registry hive file...
Say you have a registry hive file. One way to inspect and manipulate its contents is by calling the RegLoadKey function to mount it in the registry and then use the normal registry operations. This...
View ArticleWhy does Windows ask me to pick a program with which to open a file, even...
So you're working at your computer, everything is humming along just fine, and then when you double-click a file, instead of launching the associated application, Windows asks you what program you...
View ArticleWhat does the “Ae” stand for in AeDebug?
The name of the registry key for configuring automatic debugging of application crashes is AeDebug. Okay, so it's obvious what "Debug" stands for, but what does "Ae" stand for? I can't prove it, but...
View ArticleAfter reporting a non-responsive program to Windows Error Reporting, why does...
A customer observed that when they try to close a program as not responding, Windows Error Reporting kicks in, which is not unexpected. But what is unexpected is that a new process is created that is...
View ArticleFile-extending writes are not always synchronous, which is entirely within...
I noted some time ago that the current implementation of NTFS forces certain kinds of writes to be synchronous, even when issued asynchronously. Note that this is an implementation decision which is...
View ArticleWhy does the Entry Point Not Found error dialog sometimes not include the...
A customer observed that sometimes the Entry Point Not Found error dialog does not include the name of the missing entry point. Usually, it looks like this: Contoso.exe - Entry Point Not Found ⊗ The...
View ArticleAdding a Ctrl+arrow accelerator for moving the trackbar by just one unit,...
When you create a trackbar common control, you can specify how far the arrow keys will change the trackbar position (default: 1 unit) and how far the PgUp and PgDn keys will change the trackbar...
View ArticleAdding a Ctrl+arrow accelerator for moving the trackbar by just one unit,...
Last time, we looked at how we could add support to the trackbar so that Ctrl+arrow moved the thumb by one unit, even if the line size was set to a larger value. We tried doing this by subclassing the...
View ArticleHow do I prevent users from using the mouse to drag the trackbar thumb to...
A customer had a trackbar common control, set the range to 0–100, set the line size to 5 (so that pressing an arrow key moves the thumb by five units), and set the page size to 20 (so that pressing...
View ArticleHow do I prevent users from using the mouse to drag the trackbar thumb to...
Last time, we investigated one approach to the problem of keeping a trackbar position on multiples of five: Just divide everything by five! (And then multiply by five when you read the value.) This...
View ArticleThe case of the oplock deadlock poppycock
A customer reported that their application would sometimes hang trying to open a file. The call to CreateFile would simply hang, rather than failing with ERROR_SHARING_VIOLATION or some other error...
View ArticleWhat happened to the Arial Unicode MS font?
A customer wanted to know what happened to the Arial Unicode MS font. It used to be installed with Microsoft Office, but was dropped starting with Microsoft Office 2016. Various conspiracy theories...
View ArticleDulce et decorum est pro patria party
On April 2, 1996, at the then-named Computer Game Developers Conference, Microsoft introduced DirectX 2.0 to great fanfare. And by great fanfare, I mean "ridiculous fanfare." Read Jay Barnson's...
View ArticleIf the prototypes of DispatchMessageA and DispatchMessageW are identical, why...
There are a number of functions, mostly in the window manager, which have both ANSI and Unicode variants, even though the prototypes are identical. LRESULT WINAPI DispatchMessageW(const MSG*); LRESULT...
View ArticleIn the state of Washington, you are allowed to turn left on a red light onto...
A little-known quirk of the driving laws in the state of Washington is that, after coming to a complete stop, you are allowed to turn left on a red light onto a one-way street. Are left turns on red...
View ArticleWhy does the MonthCalendar control show the wrong week numbers in Romania?
A customer liaison reported that the MonthCalendar control was showing incorrect week numbers when run on a Romanian system. They included screen shots of the calendar control running on a German...
View ArticleSure, you can implement your own cryptographic service provider for a...
A customer wanted to write their own custom implementation of an existing standard encryption algorithm. The customer liaison noted that this custom implementation would presumably produce results...
View ArticleDubious security vulnerability: A program that adds a user to the...
A security vulnerability report indicated that Windows was vulnerable to having a user added to the Administrators group. The finder attached a program demonstrating the issue. (To make things more...
View ArticleUsing linker segments and __declspec(allocate(…)) to arrange data in a...
You can declare a section and then start generating data into it. #pragma section("mydata$a", read, write) __declspec(allocate("mydata$a")) int i = 0; #pragma section("mydata$b", read, write)...
View Article