I didn't have any success getting ShellExecute to work. I went to voidnish.com and went through your tutorial, "A newbie's elementary guide to spawning processes". I couldn't get even the simplest examples to work. Do any changes have to be made for Visual 2005, or do I need better C++ training. :)
I wound up using _spawn to run an external program, i.e.
_spawnl (P_WAIT, sApplication1.c_str (), sApplication1.c_str (), NULL);
The only problem with this is that it won't run .msi files, but it runs .exe files.