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