Holy cow, I wrote a book!
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
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
to undo the fix!)