mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-14 19:45:39 +00:00
winecfg: Relaunch the 64-bit version of winecfg on Wow64.
This commit is contained in:
parent
9b34838992
commit
fb929be9a4
|
@ -214,6 +214,32 @@ ProcessCmdLine(LPSTR lpCmdLine)
|
||||||
int WINAPI
|
int WINAPI
|
||||||
WinMain (HINSTANCE hInstance, HINSTANCE hPrev, LPSTR szCmdLine, int nShow)
|
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)) {
|
if (ProcessCmdLine(szCmdLine)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue