[PSDK]
[reactos.git] / include / psdk / uxtheme.h
1 #ifndef _UXTHEME_H
2 #define _UXTHEME_H
3
4 #include <commctrl.h>
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 #if (_WIN32_WINNT >= 0x0501)
11 #define DTBG_CLIPRECT 0x00000001
12 #define DTBG_DRAWSOLID 0x00000002
13 #define DTBG_OMITBORDER 0x00000004
14 #define DTBG_OMITCONTENT 0x00000008
15 #define DTBG_COMPUTINGREGION 0x00000010
16 #define DTBG_MIRRORDC 0x00000020
17 #define DTT_GRAYED 0x00000001
18 #define ETDT_DISABLE 0x00000001
19 #define ETDT_ENABLE 0x00000002
20 #define ETDT_USETABTEXTURE 0x00000004
21 #define ETDT_ENABLETAB (ETDT_ENABLE | ETDT_USETABTEXTURE)
22 #define STAP_ALLOW_NONCLIENT 0x00000001
23 #define STAP_ALLOW_CONTROLS 0x00000002
24 #define STAP_ALLOW_WEBCONTENT 0x00000004
25 #define HTTB_BACKGROUNDSEG 0x0000
26 #define HTTB_FIXEDBORDER 0x0002
27 #define HTTB_CAPTION 0x0004
28 #define HTTB_RESIZINGBORDER_LEFT 0x0010
29 #define HTTB_RESIZINGBORDER_TOP 0x0020
30 #define HTTB_RESIZINGBORDER_RIGHT 0x0040
31 #define HTTB_RESIZINGBORDER_BOTTOM 0x0080
32 #define HTTB_RESIZINGBORDER (HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP|HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM)
33 #define HTTB_SIZINGTEMPLATE 0x0100
34 #define HTTB_SYSTEMSIZINGMARGINS 0x0200
35
36 typedef HANDLE HPAINTBUFFER;
37 typedef HANDLE HTHEME;
38
39 typedef enum _BP_BUFFERFORMAT
40 {
41 BPBF_COMPATIBLEBITMAP,
42 BPBF_DIB,
43 BPBF_TOPDOWNDIB,
44 BPBF_TOPDOWNMONODIB
45 } BP_BUFFERFORMAT;
46
47 typedef struct _BP_PAINTPARAMS
48 {
49 DWORD cbSize;
50 DWORD dwFlags;
51 const RECT *prcExclude;
52 const BLENDFUNCTION *pBlendFunction;
53 } BP_PAINTPARAMS, *PBP_PAINTPARAMS;
54
55 typedef enum PROPERTYORIGIN {
56 PO_STATE = 0,
57 PO_PART = 1,
58 PO_CLASS = 2,
59 PO_GLOBAL = 3,
60 PO_NOTFOUND = 4
61 } PROPERTYORIGIN;
62
63 typedef enum THEMESIZE {
64 TS_MIN,
65 TS_TRUE,
66 TS_DRAW
67 } THEMESIZE;
68
69 typedef struct _DTBGOPTS {
70 DWORD dwSize;
71 DWORD dwFlags;
72 RECT rcClip;
73 } DTBGOPTS, *PDTBGOPTS;
74
75 #define MAX_INTLIST_COUNT 10
76
77 typedef struct _INTLIST {
78 int iValueCount;
79 int iValues[MAX_INTLIST_COUNT];
80 } INTLIST, *PINTLIST;
81
82 typedef struct _MARGINS {
83 int cxLeftWidth;
84 int cxRightWidth;
85 int cyTopHeight;
86 int cyBottomHeight;
87 } MARGINS, *PMARGINS;
88
89 HRESULT WINAPI CloseThemeData(HTHEME);
90 HRESULT WINAPI DrawThemeBackground(HTHEME,HDC,int,int,const RECT*,const RECT*);
91 HRESULT WINAPI DrawThemeBackgroundEx(HTHEME,HDC,int,int,const RECT*,const DTBGOPTS*);
92 HRESULT WINAPI DrawThemeEdge(HTHEME,HDC,int,int,const RECT*,UINT,UINT,RECT*);
93 HRESULT WINAPI DrawThemeIcon(HTHEME,HDC,int,int,const RECT*,HIMAGELIST,int);
94 HRESULT WINAPI DrawThemeParentBackground(HWND,HDC,RECT*);
95 HRESULT WINAPI DrawThemeText(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD,const RECT*);
96 HRESULT WINAPI EnableThemeDialogTexture(HWND,DWORD);
97 HRESULT WINAPI EnableTheming(BOOL);
98 HRESULT WINAPI GetCurrentThemeName(LPWSTR,int,LPWSTR,int,LPWSTR,int);
99 DWORD WINAPI GetThemeAppProperties();
100 HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME,HDC,int,int,const RECT*,RECT*);
101 HRESULT WINAPI GetThemeBackgroundExtent(HTHEME,HDC,int,int,const RECT*,RECT*);
102 HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*);
103 HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*);
104 HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*);
105 HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR,LPCWSTR,LPWSTR,int);
106 HRESULT WINAPI GetThemeEnumValue(HTHEME,int,int,int,int*);
107 HRESULT WINAPI GetThemeFilename(HTHEME,int,int,int,LPWSTR,int);
108 HRESULT WINAPI GetThemeFont(HTHEME,HDC,int,int,int,LOGFONTW*);
109 HRESULT WINAPI GetThemeInt(HTHEME,int,int,int,int*);
110 HRESULT WINAPI GetThemeIntList(HTHEME,int,int,int,INTLIST*);
111 HRESULT WINAPI GetThemeMargins(HTHEME,HDC,int,int,int,RECT*,MARGINS*);
112 HRESULT WINAPI GetThemeMetric(HTHEME,HDC,int,int,int,int*);
113 HRESULT WINAPI GetThemePartSize(HTHEME,HDC,int,int,RECT*,THEMESIZE,SIZE*);
114 HRESULT WINAPI GetThemePosition(HTHEME,int,int,int,POINT*);
115 HRESULT WINAPI GetThemePropertyOrigin(HTHEME,int,int,int,PROPERTYORIGIN*);
116 HRESULT WINAPI GetThemeRect(HTHEME,int,int,int,RECT*);
117 HRESULT WINAPI GetThemeString(HTHEME,int,int,int,LPWSTR,int);
118 BOOL WINAPI GetThemeSysBool(HTHEME,int);
119 COLORREF WINAPI GetThemeSysColor(HTHEME,int);
120 HBRUSH WINAPI GetThemeSysColorBrush(HTHEME,int);
121 HRESULT WINAPI GetThemeSysFont(HTHEME,int,LOGFONTW*);
122 HRESULT WINAPI GetThemeSysInt(HTHEME,int,int*);
123 int WINAPI GetThemeSysSize(HTHEME,int);
124 HRESULT WINAPI GetThemeSysString(HTHEME,int,LPWSTR,int);
125 HRESULT WINAPI GetThemeTextExtent(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,const RECT*,RECT*);
126 HRESULT WINAPI GetThemeTextMetrics(HTHEME,HDC,int,int,TEXTMETRICW*);
127 HTHEME WINAPI GetWindowTheme(HWND);
128 HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*,HRGN,POINT,WORD*);
129 BOOL WINAPI IsAppThemed();
130 BOOL WINAPI IsThemeActive();
131 BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int);
132 BOOL WINAPI IsThemeDialogTextureEnabled(HWND);
133 BOOL WINAPI IsThemePartDefined(HTHEME,int,int);
134 HTHEME WINAPI OpenThemeData(HWND,LPCWSTR);
135 void WINAPI SetThemeAppProperties(DWORD);
136 HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);
137 #endif
138
139 #ifdef __cplusplus
140 }
141 #endif
142 #endif