mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 11:43:31 +00:00
winecfg: Relaunch the 64-bit version of winecfg on Wow64.
This commit is contained in:
parent
9b34838992
commit
fb929be9a4
1 changed files with 26 additions and 0 deletions
|
@ -214,6 +214,32 @@ ProcessCmdLine(LPSTR lpCmdLine)
|
|||
int WINAPI
|
||||
WinMain (HINSTANCE hInstance, HINSTANCE hPrev, LPSTR szCmdLine, int nShow)
|
||||
{
|
||||
BOOL is_wow64;
|
||||
|
||||
if (IsWow64Process( GetCurrentProcess(), &is_wow64 ) && is_wow64)
|
||||
{
|
||||
STARTUPINFOW si;
|
||||
PROCESS_INFORMATION pi;
|
||||
WCHAR filename[MAX_PATH];
|
||||
void *redir;
|
||||
DWORD exit_code;
|
||||
|
||||
memset( &si, 0, sizeof(si) );
|
||||
si.cb = sizeof(si);
|
||||
GetModuleFileNameW( 0, filename, MAX_PATH );
|
||||
|
||||
Wow64DisableWow64FsRedirection( &redir );
|
||||
if (CreateProcessW( filename, GetCommandLineW(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ))
|
||||
{
|
||||
WINE_TRACE( "restarting %s\n", wine_dbgstr_w(filename) );
|
||||
WaitForSingleObject( pi.hProcess, INFINITE );
|
||||
GetExitCodeProcess( pi.hProcess, &exit_code );
|
||||
ExitProcess( exit_code );
|
||||
}
|
||||
else WINE_ERR( "failed to restart 64-bit %s, err %d\n", wine_dbgstr_w(filename), GetLastError() );
|
||||
Wow64RevertWow64FsRedirection( redir );
|
||||
}
|
||||
|
||||
if (ProcessCmdLine(szCmdLine)) {
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue