[UXTHEME_APITEST] -Add tests for SetThemeAppProperties.
[reactos.git] / rostests / apitests / uxtheme / SetThemeAppProperties.c
1 /*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for SetThemeAppProperties
5 * PROGRAMMERS: Giannis Adamopoulos
6 */
7
8 #include <apitest.h>
9 #include <stdio.h>
10 #include <windows.h>
11 #include <uxtheme.h>
12 #include <vfwmsgs.h>
13
14 START_TEST(SetThemeAppProperties)
15 {
16 BOOL bThemeActive;
17 HTHEME hTheme;
18 HWND hWnd;
19
20 bThemeActive = IsThemeActive();
21 if (!bThemeActive)
22 {
23 skip("No active theme, skipping SetWindowTheme tests\n");
24 return;
25 }
26
27 SetLastError(0xdeadbeef);
28
29 bThemeActive = IsAppThemed();
30 ok (bThemeActive == FALSE, "\n");
31 ok( GetLastError() == 0, "Expected 0 last error, got 0x%lx\n", GetLastError());
32
33 SetLastError(0xdeadbeef);
34 hTheme = OpenThemeData(NULL, L"BUTTON");
35 ok (hTheme == NULL, "\n");
36 ok( GetLastError() == E_PROP_ID_UNSUPPORTED, "Expected E_PROP_ID_UNSUPPORTED last error, got 0x%lx\n", GetLastError());
37
38 hWnd = CreateWindowExA(0, "static", "", WS_POPUP, 0,0,100,100,0, 0, 0, NULL);
39 ok (hWnd != NULL, "\n");
40
41 SetLastError(0xdeadbeef);
42 bThemeActive = IsAppThemed();
43 ok (bThemeActive == TRUE, "\n");
44 ok( GetLastError() == 0, "Expected 0 last error, got 0x%lx\n", GetLastError());
45
46 SetLastError(0xdeadbeef);
47 hTheme = OpenThemeData(NULL, L"BUTTON");
48 ok (hTheme != NULL, "\n");
49 ok( GetLastError() == 0, "Expected 0 last error, got 0x%lx\n", GetLastError());
50
51 SetLastError(0xdeadbeef);
52 SetThemeAppProperties(0);
53 ok( GetLastError() == 0, "Expected 0 last error, got 0x%lx\n", GetLastError());
54
55 bThemeActive = IsThemeActive();
56 ok (bThemeActive == TRUE, "\n");
57
58 bThemeActive = IsAppThemed();
59 ok (bThemeActive == TRUE, "\n");
60
61 SetLastError(0xdeadbeef);
62 hTheme = OpenThemeData(NULL, L"BUTTON");
63 ok (hTheme == NULL, "\n");
64 ok( GetLastError() == E_PROP_ID_UNSUPPORTED, "Expected E_PROP_ID_UNSUPPORTED last error, got 0x%lx\n", GetLastError());
65
66 SetThemeAppProperties(STAP_ALLOW_NONCLIENT);
67
68 hTheme = OpenThemeDataEx (NULL, L"BUTTON", OTD_NONCLIENT);
69 ok (hTheme != NULL, "\n");
70 SetLastError(0xdeadbeef);
71 hTheme = OpenThemeDataEx (NULL, L"BUTTON", 0);
72 ok (hTheme == NULL, "\n");
73 ok( GetLastError() == E_PROP_ID_UNSUPPORTED, "Expected E_PROP_ID_UNSUPPORTED last error, got 0x%lx\n", GetLastError());
74
75 SetThemeAppProperties(STAP_ALLOW_CONTROLS);
76
77 SetLastError(0xdeadbeef);
78 hTheme = OpenThemeDataEx (NULL, L"BUTTON", OTD_NONCLIENT);
79 ok (hTheme == NULL, "\n");
80 ok( GetLastError() == E_PROP_ID_UNSUPPORTED, "Expected E_PROP_ID_UNSUPPORTED last error, got 0x%lx\n", GetLastError());
81 hTheme = OpenThemeDataEx (NULL, L"BUTTON", 0);
82 ok (hTheme != NULL, "\n");
83
84 }