Sam,

I was under the impression that CreateProcess solves the
problem you mentioned:

"There is a problem in situations where a single application is used for multiple filees, such as Internet Explorer, Word and Excel."

ShellExecuteEx gave me a NULL process handle when the
associated file was Word and Word was already running.

CreateProcess _does_ give me a valid handle in this situation,
but I'm having trouble with WaitForSingleObject not waiting.

It is returning WAIT_OBJECT_0, but Word session launched by
CreateProcess is still open.