Firstly, I'm not new to this. I've written desktop applications for Windows going back to 1991 with Visual Basic 3.0. I've used C/C++ and Win32 API, VB3-6, C# 1.0-4.0 and currently knock out web applications in ASP.Net MVC. However I haven't touched desktop stuff since 2000 in depth bar playing around with some ClickOnce deployed WPF stuff in C#.
However, I've recently stumbled on a requirement to throw out a small, self-contained .exe standard windows desktop application. I don't want to ship any major dependencies with it. In fact, I'd rather like it to be uTorrent style i.e. small, self-contained and without masses of crud around it and possibly UPX packed. This is part of the manifesto of the software: simplicity and the ability to install in a user LocalAppData folder. This is a diagnostic tool which will be used by our users and will scan the system and report various bits of specific information back to our web servers. This has to work on pretty much everything back to win2k. I really don't want to have to go right back to Win32 if possible.
Now when I look around, everything has descended into a confusing mush of MFC, ATL, Managed C++, WTL, WPF, Metro and various other bits of string and sticky tape. Either that or heavy frameworks like Qt, Gtk and Wx.
The question is simply:
What, apart from Win32, is the best starting point for an application of this type?
Or should I just write "yet another win32" wrapper?