[PATCH 1/6] user32: Add nulldrv dummy english keyboard layout.
Rémi Bernon
rbernon at codeweavers.com
Mon Apr 19 05:40:54 CDT 2021
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
This supersedes 203899-203901 in a sense that they will conflict with
the patches. The previous series was anyway not doing much and I intend
to resend the surface patches later, making all user32 tests pass with
null driver progressively.
As a starting point, this series makes all the user32 input tests pass
with null graphics driver.
dlls/user32/driver.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index 7ac77141696..8060baa5df1 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -35,6 +35,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(user);
WINE_DECLARE_DEBUG_CHANNEL(winediag);
+WINE_DECLARE_DEBUG_CHANNEL(keyboard);
static USER_DRIVER null_driver, lazy_load_driver;
@@ -187,9 +188,12 @@ void USER_unload_driver(void)
* These are fallbacks for entry points that are not implemented in the real driver.
*/
+static HKL nulldrv_keyboard_layout = (HKL)MAKELONG(MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT));
+
static HKL CDECL nulldrv_ActivateKeyboardLayout( HKL layout, UINT flags )
{
- return 0;
+ TRACE_(keyboard)( "layout %p, flags %x.\n", layout, flags );
+ return nulldrv_keyboard_layout;
}
static void CDECL nulldrv_Beep(void)
@@ -260,17 +264,24 @@ static INT CDECL nulldrv_GetKeyNameText( LONG lparam, LPWSTR buffer, INT size )
static HKL CDECL nulldrv_GetKeyboardLayout( DWORD thread_id )
{
- return 0;
+ TRACE_(keyboard)( "thread_id %u.\n", thread_id );
+ return nulldrv_keyboard_layout;
}
static BOOL CDECL nulldrv_GetKeyboardLayoutName( LPWSTR name )
{
- return FALSE;
+ DWORD layout;
+ TRACE_(keyboard)( "name %p.\n", name );
+ layout = HandleToUlong( nulldrv_keyboard_layout );
+ if (HIWORD(layout) == LOWORD(layout)) layout = LOWORD(layout);
+ swprintf( name, KL_NAMELENGTH, L"%08x", layout );
+ return TRUE;
}
static HKL CDECL nulldrv_LoadKeyboardLayout( LPCWSTR name, UINT flags )
{
- return 0;
+ TRACE_(keyboard)( "name %s, flags %x.\n", debugstr_w(name), flags );
+ return nulldrv_keyboard_layout;
}
static UINT CDECL nulldrv_MapVirtualKeyEx( UINT code, UINT type, HKL layout )
--
2.31.0
More information about the wine-devel
mailing list