I know I've seen a reference here. Could someone please provide me with a development solution for the following:

1)Free Development Environment for Windows app
2)Free Distribution of developed app
3)Relatively Fast execution (C/C++/Assembly) Not slow Java or flavors of Basic
4)I want a free app with InstallShield type capabilities.
4a) Basically I want to detect the user's windows version
4b) read/write to the registry
4c) detect a hard drive location for a default installation
4d) install my distribution app.
4e) may need ability to find and send messages to windows (FindWindow, FindWindowEx) and launch executables.

I'm thinking that I can make the installation utility a gnu type free app, but my actual distributed application will be totally commercial and not free.

Any ideas?