From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winex11.drv/dllmain.c | 2 +- dlls/winex11.drv/unixlib.h | 2 +- dlls/winex11.drv/window.c | 2 +- dlls/winex11.drv/x11drv.h | 2 +- dlls/winex11.drv/x11drv_main.c | 16 ++-------------- 5 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/dlls/winex11.drv/dllmain.c b/dlls/winex11.drv/dllmain.c index 5a7453c9cc1..ecf93b2d94a 100644 --- a/dlls/winex11.drv/dllmain.c +++ b/dlls/winex11.drv/dllmain.c @@ -42,7 +42,7 @@ BOOL WINAPI DllMain( HINSTANCE instance, DWORD reason, void *reserved ) KERNEL_CALLBACK_PROC *callback_table; struct init_params params = { - foreign_window_proc, + .foreign_window_proc = (UINT_PTR)foreign_window_proc, };
if (reason != DLL_PROCESS_ATTACH) return TRUE; diff --git a/dlls/winex11.drv/unixlib.h b/dlls/winex11.drv/unixlib.h index 701868f2722..3fce13ec6df 100644 --- a/dlls/winex11.drv/unixlib.h +++ b/dlls/winex11.drv/unixlib.h @@ -35,7 +35,7 @@ enum x11drv_funcs /* x11drv_init params */ struct init_params { - WNDPROC foreign_window_proc; + UINT64 foreign_window_proc; };
/* x11drv_tablet_info params */ diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 0e06939f67d..1902d060bba 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -2105,7 +2105,7 @@ HWND create_foreign_window( Display *display, Window xwin )
memset( &class, 0, sizeof(class) ); class.cbSize = sizeof(class); - class.lpfnWndProc = client_foreign_window_proc; + class.lpfnWndProc = (WNDPROC)(UINT_PTR)client_foreign_window_proc; class.lpszClassName = foreign_window_prop; if (!NtUserRegisterClassExWOW( &class, &class_name, &version, NULL, 0, 0, NULL ) && RtlGetLastWin32Error() != ERROR_CLASS_ALREADY_EXISTS) diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index d81b679431d..8d770e69f2c 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -438,7 +438,7 @@ extern int alloc_system_colors; extern int xrender_error_base; extern char *process_name; extern Display *clipboard_display; -extern WNDPROC client_foreign_window_proc; +extern UINT64 client_foreign_window_proc;
/* atoms */
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c index c7056400e2f..1ba6a06b8db 100644 --- a/dlls/winex11.drv/x11drv_main.c +++ b/dlls/winex11.drv/x11drv_main.c @@ -85,7 +85,7 @@ int copy_default_colors = 128; int alloc_system_colors = 256; int xrender_error_base = 0; char *process_name = NULL; -WNDPROC client_foreign_window_proc = NULL; +UINT64 client_foreign_window_proc = 0;
static x11drv_error_callback err_callback; /* current callback for error */ static Display *err_callback_display; /* display callback is set for */ @@ -824,18 +824,6 @@ C_ASSERT( ARRAYSIZE(__wine_unix_call_funcs) == unix_funcs_count );
#ifdef _WIN64
-static NTSTATUS x11drv_wow64_init( void *arg ) -{ - struct - { - ULONG foreign_window_proc; - } *params32 = arg; - struct init_params params; - - params.foreign_window_proc = UlongToPtr( params32->foreign_window_proc ); - return x11drv_init( ¶ms ); -} - static NTSTATUS x11drv_wow64_tablet_get_packet( void *arg ) { FIXME( "%p\n", arg ); @@ -860,7 +848,7 @@ static NTSTATUS x11drv_wow64_tablet_info( void *arg )
const unixlib_entry_t __wine_unix_call_wow64_funcs[] = { - x11drv_wow64_init, + x11drv_init, x11drv_tablet_attach_queue, x11drv_wow64_tablet_get_packet, x11drv_wow64_tablet_info,