So mostly I blog about WPF, which is where I’ve spent most of my time the last few years. But I also work on USER and GDI, along with many full-time USER & GDI'ers, and wanted to spend a little time talking about compatibility. We put a lot of effort into compatibility, and Windows Vista runs most software written for Windows XP without a hitch. But absolute 100% compatibility isn’t possible (especially in a beta!), and we’d like your help and feedback. Does your application work on Windows Vista? Can you change it to work? Do you need us to make changes? How do you think we’re doing on compatibility?
We recently published http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AppComp.asp which describes common compatibility hotspots in Windows Vista. Good document, but it doesn’t talk a lot about USER and GDI (yet – I’m working on it <g>). So in the meantime, thought I’d write a few things about USER and GDI-specific issues.
Part 1 -- Painting issues
As part of the Desktop Window Manager work, we’ve made subtle but important changes to the way applications paint to the screen. Prior to Windows Vista, hwnds painted directly to the screen, which had certain benefits but really limited how Windows could display and manage top-level windows. In Windows Vista, all top-level windows are rendered to an offscreen bitmap (similar to WS_EX_LAYERED), and the desktop window manager combines the images together to draw the desktop.
Things to pay attention to when testing:
A lot of this is DWM-related, Greg Schector's blog is a great place for background info on DWM.
Next up: performance differences