From: Louis Lenders xerox.xerox2000x@gmail.com
--- dlls/win32u/main.c | 2 +- dlls/win32u/sysparams.c | 4 ++-- dlls/wow64win/user.c | 15 +++++++++++++-- include/ntuser.h | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/dlls/win32u/main.c b/dlls/win32u/main.c index 87885b207bc..31974a6f155 100644 --- a/dlls/win32u/main.c +++ b/dlls/win32u/main.c @@ -2055,7 +2055,7 @@ HWND SYSCALL_API NtUserSetActiveWindow( HWND hwnd ) SYSCALL_FUNC( NtUserSetActiveWindow ); }
-BOOL SYSCALL_API NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *array ) +BOOL SYSCALL_API NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *handles ) { SYSCALL_FUNC( NtUserSetAdditionalForegroundBoostProcesses ); } diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 36aa4a43595..447b699f051 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -6976,9 +6976,9 @@ BOOL WINAPI NtUserMessageBeep( UINT type ) /*********************************************************************** * NtUserSetAdditionalForegroundBoostProcesses (win32u.@) */ -BOOL WINAPI NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *array ) +BOOL WINAPI NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *handles ) { - FIXME( "%p %u %p stub!\n", hwnd, (unsigned int)count, array ); + FIXME( "%p %u %p stub!\n", hwnd, (unsigned int)count, handles ); RtlSetLastWin32Error( ERROR_CALL_NOT_IMPLEMENTED ); return FALSE; } diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index d38d25b7d8b..2f0ec0cc181 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -4170,8 +4170,19 @@ NTSTATUS WINAPI wow64_NtUserSetAdditionalForegroundBoostProcesses( UINT *args ) { HWND hwnd = get_handle( &args ); DWORD count = get_ulong( &args ); - HANDLE *array = get_ptr( &args ); - return NtUserSetAdditionalForegroundBoostProcesses( hwnd, count, array ); + ULONG *handles32 = get_ptr( &args ); + + HANDLE handles[32]; + unsigned int i; + + if (count > ARRAYSIZE(handles)) + { + set_last_error32( ERROR_INVALID_PARAMETER ); + return FALSE; + } + for (i = 0; i < count; i++) handles[i] = LongToHandle( handles32[i] ); + + return NtUserSetAdditionalForegroundBoostProcesses( hwnd, count, handles ); }
NTSTATUS WINAPI wow64_NtUserSetCapture( UINT *args ) diff --git a/include/ntuser.h b/include/ntuser.h index e148ce17a1a..848e5a4a651 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -934,7 +934,7 @@ W32KAPI INT WINAPI NtUserScrollWindowEx( HWND hwnd, INT dx, INT dy, const RE W32KAPI HPALETTE WINAPI NtUserSelectPalette( HDC hdc, HPALETTE palette, WORD force_background ); W32KAPI UINT WINAPI NtUserSendInput( UINT count, INPUT *inputs, int size ); W32KAPI HWND WINAPI NtUserSetActiveWindow( HWND hwnd ); -W32KAPI BOOL WINAPI NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *array ); +W32KAPI BOOL WINAPI NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *handles ); W32KAPI HWND WINAPI NtUserSetCapture( HWND hwnd ); W32KAPI BOOL WINAPI NtUserSetCaretBlinkTime( unsigned int time ); W32KAPI BOOL WINAPI NtUserSetCaretPos( INT x, INT y );