[USER32_APITEST]: Add more tests for RegisterClassEx.
[reactos.git] / rostests / apitests / user32 / RegisterClassEx.c
index c886df7..22a6e04 100644 (file)
@@ -116,8 +116,14 @@ VOID TestGlobalClasses(VOID)
     a = _GetClassAtom(L"ScrollBar", hmod);
     UnregisterClass(L"ScrollBar", hmod);
     b = _GetClassAtom(L"ScrollBar", hmod);
+    c = _RegisterClass(L"ScrollBar", hmod, CS_GLOBALCLASS, DefWindowProcW);
+    d = _GetClassAtom(L"ScrollBar", hmod);
     ok( a != 0, "\n");
     ok( b == 0, "\n");
+    ok( c != 0, "\n");
+    ok( d != 0, "\n");
+    ok( a == c, "\n");
+    ok( a == d, "\n"); /* In Windows 10 the last 4 tests fail */
     
     a = _GetClassAtom(L"ListBox", (HMODULE)0xdead);
     UnregisterClass(L"ListBox", (HMODULE)0xdead);
@@ -142,7 +148,7 @@ VOID TestVersionedClasses(VOID)
     HANDLE h1, h2;
     ULONG_PTR cookie1;
     ATOM a,b,c;
-    WNDPROC proc1,proc2,proc3, proc4;
+    WNDPROC proc1,proc2,proc3, proc4, proc5;
 
     h1 = _CreateActCtxFromFile(L"verclasstest1.manifest");
     h2 = _CreateActCtxFromFile(L"verclasstest2.manifest");
@@ -159,8 +165,9 @@ VOID TestVersionedClasses(VOID)
     proc2 = _GetWndproc(L"VersionTestClass1", hmod);
     c = _RegisterClass(L"VersionTestClass1", hmod, 0, DefWindowProcW);
     proc3 = _GetWndproc(L"VersionTestClass1", hmod);
+    proc4 = _GetWndproc((LPCWSTR)(DWORD_PTR)a, hmod);
     DeactivateActCtx(0, cookie1);
-    proc4 = _GetWndproc(L"VersionTestClass1", hmod);
+    proc5 = _GetWndproc(L"VersionTestClass1", hmod);
     ok( a != 0, "\n");
     ok( b == 0, "\n");
     ok( c != 0, "\n");
@@ -168,7 +175,8 @@ VOID TestVersionedClasses(VOID)
     ok (proc1 == DefWindowProcA, "\n");
     ok (proc2 == NULL, "\n");
     ok (proc3 == DefWindowProcW, "\n");
-    ok (proc4 == DefWindowProcA, "\n");
+    ok (proc4 == DefWindowProcW, "\n");
+    ok (proc5 == DefWindowProcA, "\n");
     
     a = _GetClassAtom(L"Button", hmod);
     b = _RegisterClass(L"Button", hmod, CS_GLOBALCLASS, DefWindowProcA);
@@ -181,9 +189,20 @@ VOID TestVersionedClasses(VOID)
     ok( c != 0, "\n");
     ok( a == c, "\n");
     ok( proc1 != NULL, "\n");
-    ok( proc2 != NULL, "\n");
     ok( proc1 != proc2, "\n");
     ok( proc2 == DefWindowProcA, "\n");
+    
+    a = _RegisterClass(L"VersionTestClass2", hmod, CS_GLOBALCLASS, DefWindowProcW);
+    proc1 = _GetWndproc(L"VersionTestClass2", (HMODULE)0xdead);
+    b = _RegisterClass(L"VersionTestClass2", hmod, 0, DefWindowProcA);
+    proc2 = _GetWndproc(L"VersionTestClass2", hmod);
+    ok (a != 0, "\n");
+    ok (b != 0, "\n");
+    ok (a == b, "\n");
+    ok (proc1 == DefWindowProcW, "\n");
+    ok (proc2 == DefWindowProcA, "\n");
+    
+    
 }
 
 START_TEST(RegisterClassEx)