============================================================================= RelaunchMultiInst()
| 6059 | // |
| 6060 | // |
| 6061 | BOOL RelaunchMultiInst() |
| 6062 | { |
| 6063 | if ( flagMultiFileArg == 2 && cFileList > 1 ) { |
| 6064 | WCHAR *pwch; |
| 6065 | int i = 0; |
| 6066 | STARTUPINFO si; |
| 6067 | PROCESS_INFORMATION pi; |
| 6068 | LPWSTR lpCmdLineNew = StrDup ( GetCommandLine() ); |
| 6069 | LPWSTR lp1 = LocalAlloc ( LPTR, sizeof ( WCHAR ) * ( lstrlen ( lpCmdLineNew ) + 1 ) ); |
| 6070 | LPWSTR lp2 = LocalAlloc ( LPTR, sizeof ( WCHAR ) * ( lstrlen ( lpCmdLineNew ) + 1 ) ); |
| 6071 | StrTab2Space ( lpCmdLineNew ); |
| 6072 | lstrcpy ( lpCmdLineNew + cchiFileList, L"" ); |
| 6073 | pwch = CharPrev ( lpCmdLineNew, StrEnd ( lpCmdLineNew ) ); |
| 6074 | while ( *pwch == L' ' || *pwch == L'-' || *pwch == L'+' ) { |
| 6075 | *pwch = L' '; |
| 6076 | pwch = CharPrev ( lpCmdLineNew, pwch ); |
| 6077 | if ( i++ > 1 ) { |
| 6078 | cchiFileList--; |
| 6079 | } |
| 6080 | } |
| 6081 | for ( i = 0; i < cFileList; i++ ) { |
| 6082 | lstrcpy ( lpCmdLineNew + cchiFileList, L" /n - " ); |
| 6083 | lstrcat ( lpCmdLineNew, lpFileList[i] ); |
| 6084 | LocalFree ( lpFileList[i] ); |
| 6085 | ZeroMemory ( &si, sizeof ( STARTUPINFO ) ); |
| 6086 | si.cb = sizeof ( STARTUPINFO ); |
| 6087 | ZeroMemory ( &pi, sizeof ( PROCESS_INFORMATION ) ); |
| 6088 | CreateProcess ( NULL, lpCmdLineNew, NULL, NULL, FALSE, 0, NULL, g_wchWorkingDirectory, &si, &pi ); |
| 6089 | } |
| 6090 | LocalFree ( lpCmdLineNew ); |
| 6091 | LocalFree ( lp1 ); |
| 6092 | LocalFree ( lp2 ); |
| 6093 | GlobalFree ( lpFileArg ); |
| 6094 | return TRUE; |
| 6095 | } else { |
| 6096 | int i; |
| 6097 | for ( i = 0; i < cFileList; i++ ) { |
| 6098 | LocalFree ( lpFileList[i] ); |
| 6099 | } |
| 6100 | return FALSE; |
| 6101 | } |
| 6102 | } |
| 6103 | //============================================================================= |
| 6104 | // |
| 6105 | // RelaunchElevated() |
no test coverage detected