Alexandre Julliard : user32: Always start the 64-bit version of explorer. exe on Wow64.
Alexandre Julliard
julliard at winehq.org
Mon Mar 29 09:57:58 CDT 2010
Module: wine
Branch: master
Commit: 7bef6dc8b997af5079ac087454fcd36a468c9d78
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7bef6dc8b997af5079ac087454fcd36a468c9d78
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Mar 29 12:26:42 2010 +0200
user32: Always start the 64-bit version of explorer.exe on Wow64.
---
dlls/user32/win.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index 3a61fc1..74ea0b3 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -1785,6 +1785,7 @@ HWND WINAPI GetDesktopWindow(void)
WCHAR windir[MAX_PATH];
WCHAR app[MAX_PATH + sizeof(explorer)/sizeof(WCHAR)];
WCHAR cmdline[MAX_PATH + (sizeof(explorer) + sizeof(args))/sizeof(WCHAR)];
+ void *redir;
memset( &si, 0, sizeof(si) );
si.cb = sizeof(si);
@@ -1793,11 +1794,13 @@ HWND WINAPI GetDesktopWindow(void)
si.hStdOutput = 0;
si.hStdError = GetStdHandle( STD_ERROR_HANDLE );
- GetWindowsDirectoryW( windir, MAX_PATH );
+ GetSystemDirectoryW( windir, MAX_PATH );
strcpyW( app, windir );
strcatW( app, explorer );
strcpyW( cmdline, app );
strcatW( cmdline, args );
+
+ Wow64DisableWow64FsRedirection( &redir );
if (CreateProcessW( app, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS,
NULL, windir, &si, &pi ))
{
@@ -1807,6 +1810,7 @@ HWND WINAPI GetDesktopWindow(void)
CloseHandle( pi.hProcess );
}
else WARN( "failed to start explorer, err %d\n", GetLastError() );
+ Wow64RevertWow64FsRedirection( redir );
}
else TRACE( "not starting explorer since winstation is not visible\n" );
More information about the wine-cvs
mailing list