>LPARAMETERS pcFilename, pnWindowState, pnhWnd > >lcFilename = pcFilename >lcop = 'open' >lcparms = "" > >DECLARE INTEGER ShellExecute IN Shell32; > INTEGER hWnd, STRING @lpOperation,; > STRING @lpFile, STRING @lpParameters,; > STRING @lpDirectory, INTEGER nShowCmd >lnresult = ShellExecute(0, @lcop, @lcFilename,; > @lcparms, @lcpath, lnWindowState) > >IF lnresult < 33 && Error occurred > IF lnresult = 31 && No file associated > DECLARE INTEGER GetSystemDirectory IN Win32API; > STRING @lpBuffer, INTEGER nSize > lnsize = 260 > lcbuffer = SPACE(lnsize) > lnsize = GetSystemDirectory(@lcbuffer, lnsize) > IF lnsize > 0 > lcbuffer = LEFT(lcbuffer, lnsize) > lcrundll = "RUNDLL32.EXE" > lcparms = "shell32.dll,OpenAs_RunDLL " > lnresult = ShellExecute(lnhWnd, @lcop, lcrundll,; > lcparms + lcFilename, lcbuffer, lnWindowState) > ENDIF > ENDIF >ENDIF