Especially WPF is not an abstraction of Win32. Maybe Winforms could be called that but certainly not any of the XAML dialects.
WPF is deeply integrated with Win32. For example it abstracts away the win32 message pump design. I'd call that an abstraction.
Yes, it abstracts it to the extent that it doesn't resemble Win32 anymore. It's something else.
I would have to agree. Win32 is immediate mode, while WPF is retained scene graph.
It's not an abstraction its a complete overhaul.
MFC is an abstraction to me.
As far as I know WPF is built on Direct whereas MFC and Winforms are based on Win32.
That's my understanding as well. Point spy at a WPF app and you see one top level HWND which is just hosting a DX context
WPF is a lot closer to an abstraction over Direct2D than Win32. If you use both of those APIs a lot, you start to realize they have a lot of classes with the same name that do the same thing.
The difference is that WinForms uses some of the actual higher-level UI widgets and layout system from Win32/USER, WPF just uses its message pump and other low-level windowing/IO routing mechanisms, and builds all its own bespoke composition, layout and controls on top of that.