Module: wine Branch: master Commit: 8c5befe49bfcbfb2a4fb9684c1447837256f20ce URL: https://source.winehq.org/git/wine.git/?a=commit;h=8c5befe49bfcbfb2a4fb9684c...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Feb 14 14:08:05 2022 +0100
win32u: Move MessageBeep implementation from user32.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/user32/driver.c | 12 +----------- dlls/user32/message.c | 5 +---- dlls/win32u/driver.c | 19 ++++++++++++++++--- dlls/win32u/sysparams.c | 10 ++++++++++ include/ntuser.h | 1 + 5 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c index 73f4ee67257..247093bfc17 100644 --- a/dlls/user32/driver.c +++ b/dlls/user32/driver.c @@ -119,10 +119,6 @@ void USER_unload_driver(void) * These are fallbacks for entry points that are not implemented in the real driver. */
-static void CDECL nulldrv_Beep(void) -{ -} - static BOOL CDECL nulldrv_RegisterHotKey( HWND hwnd, UINT modifiers, UINT vk ) { return TRUE; @@ -287,11 +283,6 @@ static void CDECL nulldrv_ThreadDetach( void ) * Each entry point simply loads the real driver and chains to it. */
-static void CDECL loaderdrv_Beep(void) -{ - load_driver()->pBeep(); -} - static BOOL CDECL loaderdrv_RegisterHotKey( HWND hwnd, UINT modifiers, UINT vk ) { return load_driver()->pRegisterHotKey( hwnd, modifiers, vk ); @@ -369,7 +360,7 @@ static struct user_driver_funcs lazy_load_driver = { NULL }, /* keyboard functions */ NULL, - loaderdrv_Beep, + NULL, NULL, NULL, NULL, @@ -436,7 +427,6 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v #define SET_USER_FUNC(name) \ do { if (!driver->p##name) driver->p##name = nulldrv_##name; } while(0)
- SET_USER_FUNC(Beep); SET_USER_FUNC(RegisterHotKey); SET_USER_FUNC(UnregisterHotKey); SET_USER_FUNC(DestroyCursorIcon); diff --git a/dlls/user32/message.c b/dlls/user32/message.c index 44b08da79dd..1c60244623a 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -4432,10 +4432,7 @@ BOOL WINAPI SetMessageQueue( INT size ) */ BOOL WINAPI MessageBeep( UINT i ) { - BOOL active = TRUE; - SystemParametersInfoA( SPI_GETBEEP, 0, &active, FALSE ); - if (active) USER_Driver->pBeep(); - return TRUE; + return NtUserCallOneParam( i, NtUserMessageBeep ); }
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index 2caacd2b2a6..24815922bbb 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -958,6 +958,11 @@ static BOOL CDECL loaderdrv_ActivateKeyboardLayout( HKL layout, UINT flags ) return load_driver()->pActivateKeyboardLayout( layout, flags ); }
+static void CDECL loaderdrv_Beep(void) +{ + load_driver()->pBeep(); +} + static INT CDECL loaderdrv_GetKeyNameText( LONG lparam, LPWSTR buffer, INT size ) { return load_driver()->pGetKeyNameText( lparam, buffer, size ); @@ -1033,22 +1038,30 @@ static const struct vulkan_funcs * CDECL loaderdrv_wine_get_vulkan_driver( UINT
static const struct user_driver_funcs lazy_load_driver = { + /* keyboard functions */ .pActivateKeyboardLayout = loaderdrv_ActivateKeyboardLayout, + .pBeep = loaderdrv_Beep, .pGetKeyNameText = loaderdrv_GetKeyNameText, .pGetKeyboardLayoutList = loaderdrv_GetKeyboardLayoutList, .pMapVirtualKeyEx = loaderdrv_MapVirtualKeyEx, .pToUnicodeEx = loaderdrv_ToUnicodeEx, .pUnregisterHotKey = loaderdrv_UnregisterHotKey, .pVkKeyScanEx = loaderdrv_VkKeyScanEx, - .pChangeDisplaySettingsEx = loaderdrv_ChangeDisplaySettingsEx, - .pEnumDisplaySettingsEx = loaderdrv_EnumDisplaySettingsEx, - .pUpdateDisplayDevices = loaderdrv_UpdateDisplayDevices, + /* cursor/icon functions */ .pSetCursor = loaderdrv_SetCursor, .pSetCursorPos = loaderdrv_SetCursorPos, .pClipCursor = loaderdrv_ClipCursor, + /* clipboard functions */ .pUpdateClipboard = loaderdrv_UpdateClipboard, + /* display modes */ + .pChangeDisplaySettingsEx = loaderdrv_ChangeDisplaySettingsEx, + .pEnumDisplaySettingsEx = loaderdrv_EnumDisplaySettingsEx, + .pUpdateDisplayDevices = loaderdrv_UpdateDisplayDevices, + /* windowing functions */ .pScrollDC = nulldrv_ScrollDC, + /* system parameters */ .pSystemParametersInfo = nulldrv_SystemParametersInfo, + /* vulkan support */ .pwine_get_vulkan_driver = loaderdrv_wine_get_vulkan_driver, };
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index e29a05661dc..603c16acd41 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -4475,6 +4475,14 @@ ULONG WINAPI NtUserGetProcessDpiAwarenessContext( HANDLE process ) return dpi_awareness; }
+static BOOL message_beep( UINT i ) +{ + BOOL active = TRUE; + NtUserSystemParametersInfo( SPI_GETBEEP, 0, &active, FALSE ); + if (active) user_driver->pBeep(); + return TRUE; +} + /*********************************************************************** * NtUserCallOneParam (win32u.@) */ @@ -4496,6 +4504,8 @@ ULONG_PTR WINAPI NtUserCallOneParam( ULONG_PTR arg, ULONG code ) return get_system_metrics( arg ); case NtUserGetDeskPattern: return get_entry( &entry_DESKPATTERN, 256, (WCHAR *)arg ); + case NtUserMessageBeep: + return message_beep( arg ); default: FIXME( "invalid code %u\n", code ); return 0; diff --git a/include/ntuser.h b/include/ntuser.h index 929d773cc97..92173300a35 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -57,6 +57,7 @@ enum NtUserGetSysColorBrush, NtUserGetSysColorPen, NtUserGetSystemMetrics, + NtUserMessageBeep, NtUserRealizePalette, /* temporary exports */ NtUserGetDeskPattern,