hInstance = ShellExecute (0, NULL, fileName, parameters, 0, SW_SHOWDEFAULT);
I think _T(“open”) should be replaced with NULL, since open may not be the default verb. And some file types may not even have an open verb.
From the docs:
[quote] For systems prior to Microsoft Windows 2000, the default verb is used if it is valid and available in the registry. If not, the “open” verb is used.
For Windows 2000 and later systems, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.[/quote]