HolaYo lo hago asin:
HANDLE handle;
. . .
if (WinExec("start " + <MiArchivo>, SW_HIDE) <= 31)
ShellExecute(handle, "open", <MiArchivo>, NULL, NULL, SW_MAXIMIZE);
Esto solo sirve, para archivos que guindous tenga asociados a programas, claro esta.
Salu2
KAYETANO