When your applciation is enabled to compile with UNICODE as well as NON-UNICODE fucntions, then you have covered good range of Microsoft operating systems.
If you read documents one by one carefully and do not skip any part, then it is somehow guarantee that you will be able to program any kind of windows application, even your own framework like MFC, OWL, GTK+, RAD C++, FLTK, etc.
This is an article I did over at CodeGuru.com. It took me awhile to get it to the point where it was accepted. It is missing loading the DLLs dynamically, which I fully intend to update it to include that way of loading in the very near future, I just need to find the time. This does not use MFC, only C++ and WinAPI. Source code for Visual C++ 2003 is included.