ShellExecute/ShellExecuteEx are a way of programmatically doing the same thing that happens when you double-click on a file in Windows Explorer. So they will query the registry for file associations and so forth. Ultimately they use the Windows API CreateProcess() function to start the associated application.