From: Jacek Caban jacek@codeweavers.com
--- dlls/winex11.drv/dllmain.c | 12 ------------ dlls/winex11.drv/unixlib.h | 9 --------- dlls/winex11.drv/winex11.drv.spec | 1 - dlls/winex11.drv/wintab.c | 11 ++++------- dlls/winex11.drv/x11drv.h | 1 - dlls/winex11.drv/x11drv_main.c | 18 ------------------ dlls/wintab32/context.c | 12 ++++++++---- dlls/wintab32/wintab32.c | 2 -- dlls/wintab32/wintab_internal.h | 1 - 9 files changed, 12 insertions(+), 55 deletions(-)
diff --git a/dlls/winex11.drv/dllmain.c b/dlls/winex11.drv/dllmain.c index 265d3d8368c..5fee14d3957 100644 --- a/dlls/winex11.drv/dllmain.c +++ b/dlls/winex11.drv/dllmain.c @@ -43,15 +43,3 @@ BOOL CDECL X11DRV_LoadTabletInfo( HWND hwnd ) { return X11DRV_CALL( tablet_load_info, hwnd ); } - -/*********************************************************************** - * WTInfoW (winex11.@) - */ -UINT CDECL X11DRV_WTInfoW( UINT category, UINT index, void *output ) -{ - struct tablet_info_params params; - params.category = category; - params.index = index; - params.output = output; - return X11DRV_CALL( tablet_info, ¶ms ); -} diff --git a/dlls/winex11.drv/unixlib.h b/dlls/winex11.drv/unixlib.h index ca55ae25a0d..463f06adda6 100644 --- a/dlls/winex11.drv/unixlib.h +++ b/dlls/winex11.drv/unixlib.h @@ -23,17 +23,8 @@ enum x11drv_funcs { unix_init, - unix_tablet_info, unix_tablet_load_info, unix_funcs_count, };
#define X11DRV_CALL(func, params) WINE_UNIX_CALL( unix_ ## func, params ) - -/* x11drv_tablet_info params */ -struct tablet_info_params -{ - UINT category; - UINT index; - void *output; -}; diff --git a/dlls/winex11.drv/winex11.drv.spec b/dlls/winex11.drv/winex11.drv.spec index 3127508edd9..411111bd513 100644 --- a/dlls/winex11.drv/winex11.drv.spec +++ b/dlls/winex11.drv/winex11.drv.spec @@ -1,3 +1,2 @@ # WinTab32 @ cdecl LoadTabletInfo(long) X11DRV_LoadTabletInfo -@ cdecl WTInfoW(long long ptr) X11DRV_WTInfoW diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c index 7e3ce180854..ee0dd96e540 100644 --- a/dlls/winex11.drv/wintab.c +++ b/dlls/winex11.drv/wintab.c @@ -1106,15 +1106,10 @@ static inline int CopyTabletData(LPVOID target, LPCVOID src, INT size) }
/*********************************************************************** - * x11drv_tablet_info + * get_tablet_info */ -NTSTATUS x11drv_tablet_info( void *arg ) +static UINT get_tablet_info( UINT wCategory, UINT nIndex, void *lpOutput ) { - struct tablet_info_params *params = arg; - UINT wCategory = params->category; - UINT nIndex = params->index; - void *lpOutput = params->output; - /* * It is valid to call WTInfoA with lpOutput == NULL, as per standard. * lpOutput == NULL signifies the user only wishes @@ -1549,6 +1544,8 @@ LRESULT X11DRV_WintabProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, vo { case NtUserWintabAttach: return tablet_attach_queue( hwnd ); + case NtUserWintabInfo: + return get_tablet_info( wparam, lparam, buffer ); case NtUserWintabPacket: *(WTPACKET *)buffer = gMsgPacket; return 1; diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index c5599a214c1..b6ea393f480 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -899,7 +899,6 @@ static inline BOOL is_window_rect_mapped( const RECT *rect ) /* unixlib interface */
extern NTSTATUS x11drv_tablet_load_info( void *arg ); -extern NTSTATUS x11drv_tablet_info( void *arg );
/* GDI helpers */
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c index 4e7439c7f20..35cb08da5a6 100644 --- a/dlls/winex11.drv/x11drv_main.c +++ b/dlls/winex11.drv/x11drv_main.c @@ -806,7 +806,6 @@ BOOL X11DRV_SystemParametersInfo( UINT action, UINT int_param, void *ptr_param, const unixlib_entry_t __wine_unix_call_funcs[] = { x11drv_init, - x11drv_tablet_info, x11drv_tablet_load_info, };
@@ -816,26 +815,9 @@ C_ASSERT( ARRAYSIZE(__wine_unix_call_funcs) == unix_funcs_count );
#ifdef _WIN64
-static NTSTATUS x11drv_wow64_tablet_info( void *arg ) -{ - struct - { - UINT category; - UINT index; - ULONG output; - } *params32 = arg; - struct tablet_info_params params; - - params.category = params32->category; - params.index = params32->index; - params.output = UlongToPtr( params32->output ); - return x11drv_tablet_info( ¶ms ); -} - const unixlib_entry_t __wine_unix_call_wow64_funcs[] = { x11drv_init, - x11drv_wow64_tablet_info, x11drv_tablet_load_info, };
diff --git a/dlls/wintab32/context.c b/dlls/wintab32/context.c index 510c268b72e..ec243b7b2cc 100644 --- a/dlls/wintab32/context.c +++ b/dlls/wintab32/context.c @@ -373,6 +373,10 @@ static VOID TABLET_BlankPacketData(LPOPENCONTEXT context, LPVOID lpPkt, INT n) memset(lpPkt,0,rc); }
+static UINT DriverInfo(UINT category, UINT index, void *output) +{ + return NtUserMessageCall(NULL, NtUserWintabInfo, category, index, output, NtUserWintabDriverCall, FALSE); +}
static UINT WTInfoT(UINT wCategory, UINT nIndex, LPVOID lpOutput, BOOL bUnicode) { @@ -406,7 +410,7 @@ static UINT WTInfoT(UINT wCategory, UINT nIndex, LPVOID lpOutput, BOOL bUnicode) if (lpOutput) { LOGCONTEXTW buf; - pWTInfoW(wCategory, nIndex, &buf); + DriverInfo(wCategory, nIndex, &buf);
/* Handle system extents here, as we can use user32.dll code to set them */ if(wCategory == WTI_DEFSYSCTX) @@ -425,14 +429,14 @@ static UINT WTInfoT(UINT wCategory, UINT nIndex, LPVOID lpOutput, BOOL bUnicode) } else if (is_string_field(wCategory, nIndex) && !bUnicode) { - int size = pWTInfoW(wCategory, nIndex, NULL); + int size = DriverInfo(wCategory, nIndex, NULL); WCHAR *buf = malloc(size); - pWTInfoW(wCategory, nIndex, buf); + DriverInfo(wCategory, nIndex, buf); result = WideCharToMultiByte(CP_ACP, 0, buf, size/sizeof(WCHAR), lpOutput, lpOutput ? 2*size : 0, NULL, NULL); free(buf); } else - result = pWTInfoW(wCategory, nIndex, lpOutput); + result = DriverInfo(wCategory, nIndex, lpOutput);
TRACE("returns %d\n", result); return result; diff --git a/dlls/wintab32/wintab32.c b/dlls/wintab32/wintab32.c index 98a7e47a120..f9860244cac 100644 --- a/dlls/wintab32/wintab32.c +++ b/dlls/wintab32/wintab32.c @@ -43,7 +43,6 @@ static CRITICAL_SECTION_DEBUG csTablet_debug = CRITICAL_SECTION csTablet = { &csTablet_debug, -1, 0, 0, 0, 0 };
int (CDECL *pLoadTabletInfo)(HWND hwnddefault) = NULL; -UINT (CDECL *pWTInfoW)(UINT wCategory, UINT nIndex, LPVOID lpOutput) = NULL;
static LRESULT WINAPI TABLET_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); @@ -106,7 +105,6 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpReserved) { HMODULE module = load_graphics_driver(); pLoadTabletInfo = (void *)GetProcAddress(module, "LoadTabletInfo"); - pWTInfoW = (void *)GetProcAddress(module, "WTInfoW"); } else return FALSE; diff --git a/dlls/wintab32/wintab_internal.h b/dlls/wintab32/wintab_internal.h index 26a5c628473..1c13df74402 100644 --- a/dlls/wintab32/wintab_internal.h +++ b/dlls/wintab32/wintab_internal.h @@ -152,7 +152,6 @@ LPOPENCONTEXT AddPacketToContextQueue(LPWTPACKET packet, HWND hwnd);
/* X11drv functions */ extern int (CDECL *pLoadTabletInfo)(HWND hwnddefault); -extern UINT (CDECL *pWTInfoW)(UINT wCategory, UINT nIndex, LPVOID lpOutput);
extern HWND hwndDefault; extern CRITICAL_SECTION csTablet;