From daf5664b0a0d672932762bfb0e707e5462733776 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 12 Nov 2021 12:54:45 +0100 Subject: [PATCH] win32u: Move NtUserAddClipboardFormatListener and NtUserRemoveClipboardFormatListener implementations from user32. Signed-off-by: Jacek Caban Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- dlls/user32/clipboard.c | 33 --------------------------------- dlls/user32/user32.spec | 4 ++-- dlls/win32u/clipboard.c | 32 ++++++++++++++++++++++++++++++++ dlls/win32u/syscall.c | 2 ++ dlls/win32u/win32u.spec | 4 ++-- dlls/wow64win/syscall.h | 2 ++ dlls/wow64win/user.c | 14 ++++++++++++++ include/ntuser.h | 2 ++ 8 files changed, 56 insertions(+), 37 deletions(-) diff --git a/dlls/user32/clipboard.c b/dlls/user32/clipboard.c index 033d6eb2505..de0d5a20dcc 100644 --- a/dlls/user32/clipboard.c +++ b/dlls/user32/clipboard.c @@ -996,36 +996,3 @@ INT WINAPI GetPriorityClipboardFormat(UINT *list, INT nCount) return -1; } - - -/************************************************************************** - * AddClipboardFormatListener (USER32.@) - */ -BOOL WINAPI AddClipboardFormatListener(HWND hwnd) -{ - BOOL ret; - - SERVER_START_REQ( add_clipboard_listener ) - { - req->window = wine_server_user_handle( hwnd ); - ret = !wine_server_call_err( req ); - } - SERVER_END_REQ; - return ret; -} - -/************************************************************************** - * RemoveClipboardFormatListener (USER32.@) - */ -BOOL WINAPI RemoveClipboardFormatListener(HWND hwnd) -{ - BOOL ret; - - SERVER_START_REQ( remove_clipboard_listener ) - { - req->window = wine_server_user_handle( hwnd ); - ret = !wine_server_call_err( req ); - } - SERVER_END_REQ; - return ret; -} diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index 5bc3fcd8c06..c8f98637792 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -1,5 +1,5 @@ @ stdcall ActivateKeyboardLayout(long long) -@ stdcall AddClipboardFormatListener(long) +@ stdcall AddClipboardFormatListener(long) NtUserAddClipboardFormatListener @ stdcall AdjustWindowRect(ptr long long) @ stdcall AdjustWindowRectEx(ptr long long long) @ stdcall AdjustWindowRectExForDpi(ptr long long long long) @@ -617,7 +617,7 @@ @ stdcall RegisterWindowMessageW(wstr) @ stdcall ReleaseCapture() @ stdcall ReleaseDC(long long) -@ stdcall RemoveClipboardFormatListener(long) +@ stdcall RemoveClipboardFormatListener(long) NtUserRemoveClipboardFormatListener @ stdcall RemoveMenu(long long long) @ stdcall RemovePropA(long str) @ stdcall RemovePropW(long wstr) diff --git a/dlls/win32u/clipboard.c b/dlls/win32u/clipboard.c index 56db9a61e44..3e555f4c49e 100644 --- a/dlls/win32u/clipboard.c +++ b/dlls/win32u/clipboard.c @@ -219,3 +219,35 @@ DWORD WINAPI NtUserGetClipboardSequenceNumber(void) TRACE( "returning %u\n", seqno ); return seqno; } + +/************************************************************************** + * NtUserAddClipboardFormatListener (win32u.@) + */ +BOOL WINAPI NtUserAddClipboardFormatListener( HWND hwnd ) +{ + BOOL ret; + + SERVER_START_REQ( add_clipboard_listener ) + { + req->window = wine_server_user_handle( hwnd ); + ret = !wine_server_call_err( req ); + } + SERVER_END_REQ; + return ret; +} + +/************************************************************************** + * NtUserRemoveClipboardFormatListener (win32u.@) + */ +BOOL WINAPI NtUserRemoveClipboardFormatListener( HWND hwnd ) +{ + BOOL ret; + + SERVER_START_REQ( remove_clipboard_listener ) + { + req->window = wine_server_user_handle( hwnd ); + ret = !wine_server_call_err( req ); + } + SERVER_END_REQ; + return ret; +} diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index 2c39420d1d1..3eb38177a1f 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -101,6 +101,7 @@ static void * const syscalls[] = NtGdiSetVirtualResolution, NtGdiSwapBuffers, NtGdiTransformPoints, + NtUserAddClipboardFormatListener, NtUserCloseDesktop, NtUserCloseWindowStation, NtUserCreateDesktopEx, @@ -117,6 +118,7 @@ static void * const syscalls[] = NtUserOpenDesktop, NtUserOpenInputDesktop, NtUserOpenWindowStation, + NtUserRemoveClipboardFormatListener, NtUserRemoveProp, NtUserSetObjectInformation, NtUserSetProcessWindowStation, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 9bf198947ac..e075ccbe23f 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -750,7 +750,7 @@ @ stub NtUserAcquireIAMKey @ stub NtUserAcquireInteractiveControlBackgroundAccess @ stub NtUserActivateKeyboardLayout -@ stub NtUserAddClipboardFormatListener +@ stdcall -syscall NtUserAddClipboardFormatListener(long) @ stub NtUserAddVisualIdentifier @ stub NtUserAlterWindowStyle @ stub NtUserAssociateInputContext @@ -1145,7 +1145,7 @@ @ stub NtUserRemoteRedrawRectangle @ stub NtUserRemoteRedrawScreen @ stub NtUserRemoteStopScreenUpdates -@ stub NtUserRemoveClipboardFormatListener +@ stdcall -syscall NtUserRemoveClipboardFormatListener(long) @ stub NtUserRemoveInjectionDevice @ stub NtUserRemoveMenu @ stdcall -syscall NtUserRemoveProp(long wstr) diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index f81fd005c9a..45685c3ba21 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -88,6 +88,7 @@ SYSCALL_ENTRY( NtGdiSetVirtualResolution ) \ SYSCALL_ENTRY( NtGdiSwapBuffers ) \ SYSCALL_ENTRY( NtGdiTransformPoints ) \ + SYSCALL_ENTRY( NtUserAddClipboardFormatListener ) \ SYSCALL_ENTRY( NtUserCloseDesktop ) \ SYSCALL_ENTRY( NtUserCloseWindowStation ) \ SYSCALL_ENTRY( NtUserCreateDesktopEx ) \ @@ -104,6 +105,7 @@ SYSCALL_ENTRY( NtUserOpenDesktop ) \ SYSCALL_ENTRY( NtUserOpenInputDesktop ) \ SYSCALL_ENTRY( NtUserOpenWindowStation ) \ + SYSCALL_ENTRY( NtUserRemoveClipboardFormatListener ) \ SYSCALL_ENTRY( NtUserRemoveProp ) \ SYSCALL_ENTRY( NtUserSetObjectInformation ) \ SYSCALL_ENTRY( NtUserSetProcessWindowStation ) \ diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index b39701a78af..c86e7062314 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -214,3 +214,17 @@ NTSTATUS WINAPI wow64_NtUserGetClipboardViewer( UINT *args ) { return HandleToUlong( NtUserGetClipboardViewer() ); } + +NTSTATUS WINAPI wow64_NtUserAddClipboardFormatListener( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + + return NtUserAddClipboardFormatListener( hwnd ); +} + +NTSTATUS WINAPI wow64_NtUserRemoveClipboardFormatListener( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + + return NtUserRemoveClipboardFormatListener( hwnd ); +} diff --git a/include/ntuser.h b/include/ntuser.h index 301992230e6..17032bded47 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -23,6 +23,7 @@ #include #include +BOOL WINAPI NtUserAddClipboardFormatListener( HWND hwnd ); BOOL WINAPI NtUserCloseDesktop( HDESK handle ); BOOL WINAPI NtUserCloseWindowStation( HWINSTA handle ); INT WINAPI NtUserCountClipboardFormats(void); @@ -47,6 +48,7 @@ HWINSTA WINAPI NtUserOpenWindowStation( OBJECT_ATTRIBUTES *attr, ACCESS_MASK acc BOOL WINAPI NtUserSetObjectInformation( HANDLE handle, INT index, void *info, DWORD len ); HDESK WINAPI NtUserOpenDesktop( OBJECT_ATTRIBUTES *attr, DWORD flags, ACCESS_MASK access ); HDESK WINAPI NtUserOpenInputDesktop( DWORD flags, BOOL inherit, ACCESS_MASK access ); +BOOL WINAPI NtUserRemoveClipboardFormatListener( HWND hwnd ); HANDLE WINAPI NtUserRemoveProp( HWND hwnd, const WCHAR *str ); BOOL WINAPI NtUserSetProcessWindowStation( HWINSTA handle ); BOOL WINAPI NtUserSetProp( HWND hwnd, const WCHAR *str, HANDLE handle );