[PATCH] regedit: Always start the GUI as 64-bit when on a 64-bit prefix.
Austin English
austinenglish at gmail.com
Tue Oct 31 19:00:58 CDT 2017
On Tue, Oct 31, 2017 at 6:27 PM, Zebediah Figura <z.figura12 at gmail.com> wrote:
> Same as we do with winecfg. This should help to eliminate some confusion
> with users who may want to edit keys with WOW64 redirection (e.g.
> Software\\Wine\\Drives).
>
> Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
> ---
> programs/regedit/main.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/programs/regedit/main.c b/programs/regedit/main.c
> index 8f82580..460a951 100644
> --- a/programs/regedit/main.c
> +++ b/programs/regedit/main.c
> @@ -24,10 +24,13 @@
> #include <stdlib.h>
> #include <stdio.h>
> #include <fcntl.h>
> +#include "wine/debug.h"
>
> #define REGEDIT_DECLARE_FUNCTIONS
> #include "main.h"
>
> +WINE_DEFAULT_DEBUG_CHANNEL(regedit);
> +
> WCHAR g_pszDefaultValueName[64];
>
> BOOL ProcessCmdLine(WCHAR *cmdline);
> @@ -138,11 +141,36 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
> {
> MSG msg;
> HACCEL hAccel;
> + BOOL is_wow64;
>
> if (ProcessCmdLine(GetCommandLineW())) {
> return 0;
> }
>
> + 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 );
> + }
> +
> /* Initialize global strings */
> LoadStringW(hInstance, IDS_APP_TITLE, szTitle, COUNT_OF(szTitle));
> LoadStringW(hInstance, IDS_REGISTRY_DEFAULT_VALUE, g_pszDefaultValueName, COUNT_OF(g_pszDefaultValueName));
> --
> 2.7.4
How should we expect users to edit the 32-bit entries then? Through
Wow6432node or some other way?
--
-Austin
GPG: 14FB D7EA A041 937B
More information about the wine-devel
mailing list