#include #include "debug.h" #include "stringutils.h" #include "args.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { DebugSetLogfile("tstshexec.log"); WStringList args; if (!SplitString(lpCmdLine, args, false)) { error("Error in commandline"); return false; } std::wstring verb; // open, print, ... std::wstring file; // std::wstring params; // std::wstring dir; // for (WStringList::iterator i= args.begin() ; i!=args.end() ; ++i) { std::wstring& arg= *i; if (arg[0]=='-') switch(arg[1]) { case 'v': HANDLESTLSTROPTION(verb); break; case 'f': HANDLESTLSTROPTION(file); break; case 'p': HANDLESTLSTROPTION(params); break; } } SHELLEXECUTEINFO sei; memset(&sei, 0, sizeof(sei)); sei.cbSize= sizeof(sei); sei.fMask= SEE_MASK_NOCLOSEPROCESS; sei.lpVerb= verb.c_str(); // "open" sei.lpFile= file.c_str(); // "secure:+316131123/Naam%20Achternaam" sei.lpParameters= params.c_str(); debugt("verb: '%ls'\n", sei.lpVerb); debugt("file: '%ls'\n", sei.lpFile); debugt("parm: '%ls'\n", sei.lpParameters); if (!ShellExecuteEx(&sei)) error("ERROR hProc=%08lx hInstApp=%08lx\n", sei.hProcess, sei.hInstApp); else debugt("hProc=%08lx hInstApp=%08lx\n", sei.hProcess, sei.hInstApp); return 0; }