Well, I'm not really a WinAPI expert but just by taking a quick look at ShellExecute() documentation I can say that CreateProcess() and GetExitCodeProcess() might be a very good alternative for you since you are not really performing an abstract operation on a file in the sense that you want to let the explorer to choose a suitable application to do that, but you rather want to start a process with that specific application.
Bookmarks