From: Katayama Hirofumi MZ Date: Fri, 12 Aug 2022 00:16:18 +0000 (+0900) Subject: [USER32] Refactoring on LoadKeyboardLayout(W/Ex) (#4601) X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=1381cea2a73245002c09ee3f3a743dd6b7111589 [USER32] Refactoring on LoadKeyboardLayout(W/Ex) (#4601) - Add IntLoadKeyboardLayout (Win: LoadKeyboardLayoutWorker) helper function. - Use it in LoadKeyboardLayoutW and LoadKeyboardLayoutEx functions. CORE-11700 --- diff --git a/win32ss/user/user32/misc/stubs.c b/win32ss/user/user32/misc/stubs.c index 8199c0222f7..bb1754b781f 100644 --- a/win32ss/user/user32/misc/stubs.c +++ b/win32ss/user/user32/misc/stubs.c @@ -441,15 +441,6 @@ BOOL WINAPI IsServerSideWindow(HWND wnd) return FALSE; } -/* - * @unimplemented - */ -HKL WINAPI LoadKeyboardLayoutEx(DWORD unknown,LPCWSTR pwszKLID,UINT Flags) //1st parameter unknown -{ - UNIMPLEMENTED; - return FALSE; -} - /* * @unimplemented */ diff --git a/win32ss/user/user32/windows/input.c b/win32ss/user/user32/windows/input.c index 1de1dc0f293..dd396999e3b 100644 --- a/win32ss/user/user32/windows/input.c +++ b/win32ss/user/user32/windows/input.c @@ -639,11 +639,16 @@ LoadKeyboardLayoutA(LPCSTR pszKLID, } /* - * @implemented + * @unimplemented */ -HKL WINAPI -LoadKeyboardLayoutW(LPCWSTR pwszKLID, - UINT Flags) +/* Win: LoadKeyboardLayoutWorker */ +HKL APIENTRY +IntLoadKeyboardLayout( + _In_ HKL hklUnload, + _In_z_ LPCWSTR pwszKLID, + _In_ LANGID wLangID, + _In_ UINT Flags, + _In_ BOOL unknown5) { DWORD dwhkl, dwType, dwSize; UNICODE_STRING ustrKbdName; @@ -712,6 +717,31 @@ LoadKeyboardLayoutW(LPCWSTR pwszKLID, dwhkl, Flags); } +/* + * @implemented + */ +HKL WINAPI +LoadKeyboardLayoutW(LPCWSTR pwszKLID, + UINT Flags) +{ + TRACE("(%s, 0x%X)", debugstr_w(pwszKLID), Flags); + return IntLoadKeyboardLayout(NULL, pwszKLID, 0, Flags, FALSE); +} + +/* + * @unimplemented + */ +HKL WINAPI +LoadKeyboardLayoutEx(HKL hklUnload, + LPCWSTR pwszKLID, + UINT Flags) +{ + FIXME("(%p, %s, 0x%X)", hklUnload, debugstr_w(pwszKLID), Flags); + if (!hklUnload) + return NULL; + return IntLoadKeyboardLayout(hklUnload, pwszKLID, 0, Flags, FALSE); +} + /* * @implemented */