Commenter Stu suggested that instead of having code to auto-correct dialog templates, why not have a program that corrects them at build time? That way, Windows wouldn't have to make all these accommodations for programs that didn't understand the new dialog template requirements for property sheet pages.

For one thing, this model assumes that all dialog templates come from Win32 PE resources and aren't generated at runtime or loaded from other files not in resource format. For those cases, you still need the runtime fixup, so this solution would be a supplement to the existing one rather than a replacement.

Even if you cover your ears and pretend that all dialog templates come from Win32 PE resources, you still have a problem. Certainly such a program could have been written, and people could have added it to their project as a postbuild step (Fix­Property­Sheet­Templates.exe $(Output.Directory)\myapp.exe), and if you really want to, you can write this program yourself and add it to your build process. But you're also assuming that this is the entire workflow.

After the myapp.exe program is built, you have to hand the program off to your translation team for them to translate all the resources, and the translation program they use crashes or otherwise rejects these "corrupted" dialog templates. Now you have to change your workflow so you save the original "broken" version of myapp.exe and give that to your translation team, then have to remember to re-fix it when they return it. If your existing workflow consisted of the translation team handing the translated program directly to your QA team, well now you have to insert another step into the workflow where the binary comes back to the development team so it can have its final touch-up applied before being sent back out.

Sure, you could manage this too, but after you deal with all of these tiny issues, you find yourself with a dozen additional tiny issues to deal with, and then you'd just wish that the fix was made in the operating system to save everybody on the planet all this hassle.

(And then later you discover that when you load myapp.exe into your IDE, it reports that the dialog templates are corrupted and refuses to let you see them. Now you need a Damage­Property­Sheet­Templates.exe program to undo the fix!)