[USER32_APITEST]
authorThomas Faber <thomas.faber@reactos.org>
Mon, 26 Oct 2015 12:03:09 +0000 (12:03 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Mon, 26 Oct 2015 12:03:09 +0000 (12:03 +0000)
- Add a test for the bug in win32k highlighted by the recent ATL breakage
CORE-10413

svn path=/trunk/; revision=69707

rostests/apitests/user32/CMakeLists.txt
rostests/apitests/user32/CreateWindowEx.c [new file with mode: 0644]
rostests/apitests/user32/testlist.c

index 17ec36b..720cee8 100644 (file)
@@ -4,10 +4,12 @@ list(APPEND SOURCE
     helper.c
     CreateDialog.c
     CreateIconFromResourceEx.c
+    CreateWindowEx.c
     DeferWindowPos.c
     DestroyCursorIcon.c
     DrawIconEx.c
     desktop.c
+    DestroyWindow.c
     EnumDisplaySettings.c
     GetDCEx.c
     GetIconInfo.c
diff --git a/rostests/apitests/user32/CreateWindowEx.c b/rostests/apitests/user32/CreateWindowEx.c
new file mode 100644 (file)
index 0000000..d708e3a
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * PROJECT:         ReactOS API tests
+ * LICENSE:         LGPLv2.1+ - See COPYING.LIB in the top level directory
+ * PURPOSE:         Test for CreateWindowEx
+ * PROGRAMMERS:     Thomas Faber <thomas.faber@reactos.org>
+ */
+
+#include <apitest.h>
+#include <winuser.h>
+
+
+START_TEST(CreateWindowEx)
+{
+    HWND hWnd;
+    DWORD dwError;
+
+    SetLastError(0x1234);
+    hWnd = CreateWindowExW(0, L"BUTTON", NULL, WS_CHILD, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
+    dwError = GetLastError();
+    ok(hWnd == NULL, "hWnd = %p\n", hWnd);
+    ok(dwError == ERROR_TLW_WITH_WSCHILD, "error = %lu\n", dwError);
+
+    SetLastError(0x1234);
+    hWnd = CreateWindowExW(0, L"BUTTON", NULL, WS_CHILD, 0, 0, 0, 0, (HWND)(LONG_PTR)-1, NULL, NULL, NULL);
+    dwError = GetLastError();
+    ok(hWnd == NULL, "hWnd = %p\n", hWnd);
+    ok(dwError == ERROR_INVALID_WINDOW_HANDLE, "error = %lu\n", dwError);
+}
index deaa4e8..d301405 100644 (file)
@@ -6,10 +6,12 @@
 extern void func_AttachThreadInput(void);
 extern void func_CreateDialog(void);
 extern void func_CreateIconFromResourceEx(void);
+extern void func_CreateWindowEx(void);
 extern void func_DeferWindowPos(void);
 extern void func_DestroyCursorIcon(void);
 extern void func_DrawIconEx(void);
 extern void func_desktop(void);
+extern void func_DestroyWindow(void);
 extern void func_EnumDisplaySettings(void);
 extern void func_GetDCEx(void);
 extern void func_GetIconInfo(void);
@@ -41,10 +43,12 @@ const struct test winetest_testlist[] =
     { "AttachThreadInput", func_AttachThreadInput },
     { "CreateDialog", func_CreateDialog },
     { "CreateIconFromResourceEx", func_CreateIconFromResourceEx },
+    { "CreateWindowEx", func_CreateWindowEx },
     { "DeferWindowPos", func_DeferWindowPos },
     { "DestroyCursorIcon", func_DestroyCursorIcon },
     { "DrawIconEx", func_DrawIconEx },
     { "desktop", func_desktop },
+    { "DestroyWindow", func_DestroyWindow },
     { "EnumDisplaySettings", func_EnumDisplaySettings },
     { "GetDCEx", func_GetDCEx },
     { "GetIconInfo", func_GetIconInfo },