Jacek Caban : win32u: Move MessageBeep implementation from user32.
Alexandre Julliard
julliard at winehq.org
Mon Feb 14 15:41:31 CST 2022
Module: wine
Branch: master
Commit: 8c5befe49bfcbfb2a4fb9684c1447837256f20ce
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8c5befe49bfcbfb2a4fb9684c1447837256f20ce
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Feb 14 14:08:05 2022 +0100
win32u: Move MessageBeep implementation from user32.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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,
More information about the wine-cvs
mailing list