--- /dev/null
+/*\r
+ * PROJECT: ReactOS api tests\r
+ * LICENSE: GPL - See COPYING in the top level directory\r
+ * PURPOSE: Test for SetWindowTheme\r
+ * PROGRAMMERS: Giannis Adamopoulos\r
+ */\r
+\r
+#include <apitest.h>\r
+#include <stdio.h>\r
+#include <windows.h>\r
+#include <uxtheme.h>\r
+\r
+void TestParams(HWND hwnd)\r
+{\r
+ HRESULT hr;\r
+\r
+ hr = SetWindowTheme(0, NULL, NULL);\r
+ ok (hr == E_HANDLE, "Expected E_HANDLE got 0x%lx error\n", hr);\r
+\r
+ hr = SetWindowTheme((HWND)0xdeaddead, NULL, NULL);\r
+ ok (hr == E_HANDLE, "Expected E_HANDLE got 0x%lx error\n", hr);\r
+\r
+ hr = SetWindowTheme(hwnd, NULL, NULL);\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ hr = SetWindowTheme(hwnd, L"none", L"none");\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ hr = SetWindowTheme(hwnd, NULL, L"none");\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ hr = SetWindowTheme(hwnd, L"none", NULL);\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ hr = SetWindowTheme(hwnd, L"", L"");\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+}\r
+\r
+void TestTheme(HWND hwnd)\r
+{\r
+ HRESULT hr;\r
+ HTHEME htheme1, htheme2;\r
+\r
+ hr = SetWindowTheme(hwnd, NULL, NULL);\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ htheme1 = OpenThemeData(hwnd, L"Toolbar");\r
+ ok (htheme1 != NULL, "OpenThemeData failed\n");\r
+\r
+ hr = SetWindowTheme(hwnd, L"", L"");\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ htheme2 = OpenThemeData(hwnd, L"Toolbar");\r
+ ok (htheme2 == NULL, "Expected OpenThemeData to fail\n");\r
+\r
+ hr = SetWindowTheme(hwnd, L"TrayNotify", L"");\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ htheme2 = OpenThemeData(hwnd, L"Toolbar");\r
+ ok (htheme2 == NULL, "Expected OpenThemeData to fail\n");\r
+\r
+ hr = SetWindowTheme(hwnd, L"TrayNotify", NULL);\r
+ ok (hr == S_OK, "Expected S_OK got 0x%lx error\n", hr);\r
+\r
+ htheme2 = OpenThemeData(hwnd, L"Toolbar");\r
+ ok (htheme2 != NULL, "OpenThemeData failed\n");\r
+\r
+ ok(htheme1 != htheme2, "Expected different theme data\n");\r
+}\r
+\r
+START_TEST(SetWindowTheme)\r
+{\r
+ HWND hwnd;\r
+\r
+ hwnd = CreateWindowW(L"button", L"Test window", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 200, 200, 0, NULL, NULL, NULL);\r
+ ok (hwnd != NULL, "Expected CreateWindowW to succeed\n");\r
+\r
+ TestParams(hwnd);\r
+ TestTheme(hwnd);\r
+}
\ No newline at end of file