ntuser/NtUserFindExistingCursorIcon.c
ntuser/NtUserGetClassInfo.c
# ntuser/NtUserGetIconInfo.c
+ ntuser/NtUserGetKeyboardLayoutName.c
ntuser/NtUserGetThreadState.c
ntuser/NtUserGetTitleBarInfo.c
ntuser/NtUserProcessConnect.c
--- /dev/null
+/*
+ * PROJECT: ReactOS api tests
+ * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
+ * PURPOSE: Test for NtUserGetKeyboardLayoutName
+ * COPYRIGHT: Copyright 2022 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
+ */
+
+#include <win32nt.h>
+#include <pseh/pseh2.h>
+
+typedef BOOL (APIENTRY *FN_NtUserGetKeyboardLayoutName)(PVOID);
+
+START_TEST(NtUserGetKeyboardLayoutName)
+{
+ FN_NtUserGetKeyboardLayoutName fn = (FN_NtUserGetKeyboardLayoutName)NtUserGetKeyboardLayoutName;
+ UNICODE_STRING ustr;
+ WCHAR szBuff[MAX_PATH];
+ BOOL bHung;
+
+ /* Try NULL */
+ ok_int(fn(NULL), 0);
+
+ /* Try szBuff */
+ bHung = FALSE;
+ szBuff[0] = 0;
+ _SEH2_TRY
+ {
+ fn(szBuff);
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ bHung = TRUE;
+ }
+ _SEH2_END;
+
+ ok_int(bHung, FALSE);
+ ok(szBuff[0] == 0, "szBuff[0] was %d\n", szBuff[0]);
+
+ /* Try ustr */
+ szBuff[0] = 0;
+ ustr.Buffer = szBuff;
+ ustr.Length = 0;
+ ustr.MaximumLength = RTL_NUMBER_OF(szBuff);
+ bHung = FALSE;
+ _SEH2_TRY
+ {
+ fn(&ustr);
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ bHung = TRUE;
+ }
+ _SEH2_END;
+
+ ok_int(bHung, FALSE);
+ ok(szBuff[0] != 0, "szBuff[0] was %d\n", szBuff[0]);
+}
extern void func_NtUserEnumDisplaySettings(void);
extern void func_NtUserFindExistingCursorIcon(void);
extern void func_NtUserGetClassInfo(void);
-extern void func_NtUserGetThreadState(void);
//extern void func_NtUserGetIconInfo(void);
+extern void func_NtUserGetKeyboardLayoutName(void);
+extern void func_NtUserGetThreadState(void);
extern void func_NtUserGetTitleBarInfo(void);
extern void func_NtUserProcessConnect(void);
extern void func_NtUserRedrawWindow(void);
{ "NtUserEnumDisplaySettings", func_NtUserEnumDisplaySettings },
{ "NtUserFindExistingCursorIcon", func_NtUserFindExistingCursorIcon },
{ "NtUserGetClassInfo", func_NtUserGetClassInfo },
- { "NtUserGetThreadState", func_NtUserGetThreadState },
//{ "NtUserGetIconInfo", func_NtUserGetIconInfo },
+ { "NtUserGetKeyboardLayoutName", func_NtUserGetKeyboardLayoutName },
+ { "NtUserGetThreadState", func_NtUserGetThreadState },
{ "NtUserGetTitleBarInfo", func_NtUserGetTitleBarInfo },
{ "NtUserProcessConnect", func_NtUserProcessConnect },
{ "NtUserRedrawWindow", func_NtUserRedrawWindow },