From: Joe Meyer <joelawm@gmail.com> --- dlls/user32/user32.spec | 2 +- dlls/win32u/input.c | 9 +++++++++ dlls/win32u/main.c | 5 +++++ dlls/win32u/win32syscalls.h | 5 ++--- dlls/win32u/win32u.spec | 2 +- dlls/wow64win/user.c | 8 ++++++++ include/ntuser.h | 1 + 7 files changed, 27 insertions(+), 5 deletions(-) diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index b8939646668..40e80c69246 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -749,7 +749,7 @@ # @ stub InitializeLpkHooks # @ stub InitializePointerDeviceInjection # @ stub InitializePointerDeviceInjectionEx -# @ stub InitializeTouchInjection +@ stdcall InitializeTouchInjection(long long) NtUserInitializeTouchInjection # @ stub InjectDeviceInput # @ stub InjectGenericHidInput # @ stub InjectKeyboardInput diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index ab09c3b7d42..a8055a9bb5d 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -2852,3 +2852,12 @@ INT WINAPI NtUserScheduleDispatchNotification( HWND hwnd ) return 0; } + +/********************************************************************** + * NtUserInitializeTouchInjection (win32u.@) + */ +BOOL WINAPI NtUserInitializeTouchInjection( UINT max_count, UINT mode ) +{ + FIXME( "max_count %u, mode %#x stub!\n", max_count, mode ); + return TRUE; +} diff --git a/dlls/win32u/main.c b/dlls/win32u/main.c index 73a6ae32448..14cecf81497 100644 --- a/dlls/win32u/main.c +++ b/dlls/win32u/main.c @@ -1885,6 +1885,11 @@ NTSTATUS SYSCALL_API NtUserInitializeClientPfnArrays( const ntuser_client_func_p SYSCALL_FUNC( NtUserInitializeClientPfnArrays ); } +BOOL SYSCALL_API NtUserInitializeTouchInjection( UINT max_count, UINT mode ) +{ + SYSCALL_FUNC( NtUserInitializeTouchInjection ); +} + HICON SYSCALL_API NtUserInternalGetWindowIcon( HWND hwnd, UINT type ) { SYSCALL_FUNC( NtUserInternalGetWindowIcon ); diff --git a/dlls/win32u/win32syscalls.h b/dlls/win32u/win32syscalls.h index aa0ceec4072..3f3d702513d 100644 --- a/dlls/win32u/win32syscalls.h +++ b/dlls/win32u/win32syscalls.h @@ -1152,7 +1152,7 @@ SYSCALL_ENTRY( 0x147c, NtUserInitializeInputDeviceInjection, 0 ) \ SYSCALL_ENTRY( 0x147d, NtUserInitializePointerDeviceInjection, 0 ) \ SYSCALL_ENTRY( 0x147e, NtUserInitializePointerDeviceInjectionEx, 0 ) \ - SYSCALL_ENTRY( 0x147f, NtUserInitializeTouchInjection, 0 ) \ + SYSCALL_ENTRY( 0x147f, NtUserInitializeTouchInjection, 8 ) \ SYSCALL_ENTRY( 0x1480, NtUserInjectDeviceInput, 0 ) \ SYSCALL_ENTRY( 0x1481, NtUserInjectGenericHidInput, 0 ) \ SYSCALL_ENTRY( 0x1482, NtUserInjectGesture, 0 ) \ @@ -2694,7 +2694,7 @@ SYSCALL_ENTRY( 0x147c, NtUserInitializeInputDeviceInjection, 0 ) \ SYSCALL_ENTRY( 0x147d, NtUserInitializePointerDeviceInjection, 0 ) \ SYSCALL_ENTRY( 0x147e, NtUserInitializePointerDeviceInjectionEx, 0 ) \ - SYSCALL_ENTRY( 0x147f, NtUserInitializeTouchInjection, 0 ) \ + SYSCALL_ENTRY( 0x147f, NtUserInitializeTouchInjection, 16 ) \ SYSCALL_ENTRY( 0x1480, NtUserInjectDeviceInput, 0 ) \ SYSCALL_ENTRY( 0x1481, NtUserInjectGenericHidInput, 0 ) \ SYSCALL_ENTRY( 0x1482, NtUserInjectGesture, 0 ) \ @@ -3887,7 +3887,6 @@ SYSCALL_STUB( NtUserInitializeInputDeviceInjection ) \ SYSCALL_STUB( NtUserInitializePointerDeviceInjection ) \ SYSCALL_STUB( NtUserInitializePointerDeviceInjectionEx ) \ - SYSCALL_STUB( NtUserInitializeTouchInjection ) \ SYSCALL_STUB( NtUserInjectDeviceInput ) \ SYSCALL_STUB( NtUserInjectGenericHidInput ) \ SYSCALL_STUB( NtUserInjectGesture ) \ diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 2f657aa854e..49e8b4ab048 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -1150,7 +1150,7 @@ @ stub -syscall NtUserInitializeInputDeviceInjection @ stub -syscall NtUserInitializePointerDeviceInjection @ stub -syscall NtUserInitializePointerDeviceInjectionEx -@ stub -syscall NtUserInitializeTouchInjection +@ stdcall -syscall NtUserInitializeTouchInjection(long long) @ stub -syscall NtUserInjectDeviceInput @ stub -syscall NtUserInjectGenericHidInput @ stub -syscall NtUserInjectGesture diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 0a570d79ff7..317b5552b21 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -3282,6 +3282,14 @@ NTSTATUS WINAPI wow64_NtUserInitializeClientPfnArrays( UINT *args ) return NtUserInitializeClientPfnArrays( procsA, procsW, workers, user_module ); } +NTSTATUS WINAPI wow64_NtUserInitializeTouchInjection( UINT *args ) +{ + UINT max_count = get_ulong( &args ); + UINT mode = get_ulong( &args ); + + return HandleToUlong( NtUserInitializeTouchInjection( max_count, mode ) ); +} + NTSTATUS WINAPI wow64_NtUserInternalGetWindowIcon( UINT *args ) { HWND hwnd = get_handle( &args ); diff --git a/include/ntuser.h b/include/ntuser.h index f8d5882abf4..328108a0091 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -923,6 +923,7 @@ W32KAPI BOOL WINAPI NtUserHiliteMenuItem( HWND hwnd, HMENU handle, UINT item, W32KAPI NTSTATUS WINAPI NtUserInitializeClientPfnArrays( const ntuser_client_func_ptr *client_procsA, const ntuser_client_func_ptr *client_procsW, const ntuser_client_func_ptr *client_workers, HINSTANCE user_module ); +W32KAPI BOOL WINAPI NtUserInitializeTouchInjection( UINT max_count, UINT mode ); W32KAPI HICON WINAPI NtUserInternalGetWindowIcon( HWND hwnd, UINT type ); W32KAPI INT WINAPI NtUserInternalGetWindowText( HWND hwnd, WCHAR *text, INT count ); W32KAPI BOOL WINAPI NtUserIsChildWindowDpiMessageEnabled( HWND hwnd ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10782