The Old New Thing

Why do property sheets sometimes take a first-chance exception?

Reader cmonachan asked why can cause a first-chance exception. This is mentioned in Knowledge Base article 158552. But why take the exception in the first place? First off, let's take MFC out of the picture. The first-chance exception is coming from the property sheet manager. MFC is just the middle-man. Okay, so why the first-chance ...

Wait, but why can I GetProcAddress for IsDialogMessage?

Okay, so I explained that a lot of so-called functions are really redirecting macros, function-like macros, intrinsic functions, and inline functions, and consequently, won't actually get anything since the function doesn't exist in the form of an exported function. But why, then, can you for ? Let's take a closer look at the exports ...

The evolution of version resources – corrupted 32-bit version resources

Last time we looked at the format of 32-bit version resources, but I ended with the remark that what you saw purported to be the resources of but actually weren't. What's going on here? The resources I presented last time were what the resources of should have been, but in fact they aren't. A common mistake in generating 32-bit ...

The evolution of version resources – 32-bit version resources

Last time we looked at the format of 16-bit version resources. The 32-bit version is nearly identical, except that everything is now in Unicode. Each node is stored in the following structure (in pseudo-C): In words, each version node begins with a 16-bit value describing the size of the nodes in bytes (including its children), followed by...

The evolution of version resources – 16-bit version resources

I return to the extremely sporadic series on resources with a description of the version resource. You don't need to know how version resources are formatted internally; you should just use the version resource manipulation functions , , and their friends. I'm providing this information merely for its historical significance. Version ...

Sometimes you need to recalibrate your progress reports

One of my former managers told me this story from a project he worked on many years ago. This project was broken up into multiple groups, and there was a weekly meeting where representatives from each group got together to discuss how the project was going. One of the groups was responsible for generating the reports and analysis. This was an...

The quiet dream of placebo settings

Back in the Windows 95 days, people swore that increasing the value of in the file fixed application errors. People usually made up some pseudo-scientific explanation for why this fixed crashes. These explanations were complete rot. These breakpoints had nothing to do with Windows applications. They were used by 32-bit device drivers ...

Keeping classic hardware alive through emulation

At the Windows 2000 Conference and Expo which coincided with the operating system's launch, I paid a visit to the emulators.com booth, where they were excitedly showing off SoftMac 2000, a Mac emulator that ran on Windows 2000. Emulator trivia: MacOS booted in five seconds under Windows 2000, which was faster than the real ...