> The article is also talking about non-client area scaling which is not a per thread issue.
It's talking about that and the per thread DPI issue. And again, it seems to be backwards compatibility that's the issue. Note that you have to opt in to the non-client-area scaling with a special API.
> Also, it gives the example of the print dialog in Notepad not scaling. That's a first party app!
Are you sure notepad.exe can be even changed? It's a tiny wrapper around a comctl32.dll TEXT control. The Print dialog is pure comdlg32.dll, and I'm sure there are backwards compatibility reasons why that cannot be changed.
Wine has to fairly precisely duplicate notepad.exe, so I suspect there is some backwards compatibility reason why it has to be the way it is.
Remember that Win32 is totally based on using exact pixel coordinates for everything. There are a lot fewer apps hardcoding pixel measurements of things in the Apple world (and coordinates in classic Win32 are in integers, not CGFloats as in Core Graphics/Cocoa). Microsoft can't even change the Windows 95 default style of buttons without opt-in without breaking apps!
> Apple rapidly rewrote its first-party apps
Not iTunes! It is still Carbon.