1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef _UXTHEME_H_
7 #define _UXTHEME_H_
8
9 #include <commctrl.h>
10
11 #ifndef THEMEAPI
12 #if !defined(_UXTHEME_)
13 #define THEMEAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI
14 #define THEMEAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI
15 #else
16 #define THEMEAPI STDAPI
17 #define THEMEAPI_(type) STDAPI_(type)
18 #endif
19 #endif
20
21 typedef HANDLE HTHEME;
22
23 #if (NTDDI_VERSION >= NTDDI_VISTA)
24 #define MAX_THEMECOLOR 64
25 #define MAX_THEMESIZE 64
26 #endif
27
28 #if (NTDDI_VERSION >= NTDDI_WIN7)
29 THEMEAPI_(WINBOOL) BeginPanningFeedback(HWND hwnd);
30 THEMEAPI_(WINBOOL) UpdatePanningFeedback(HWND hwnd,LONG lTotalOverpanOffsetX,LONG lTotalOverpanOffsetY,WINBOOL fInInertia);
31 THEMEAPI_(WINBOOL) EndPanningFeedback(HWND hwnd,WINBOOL fAnimateBack);
32 #endif
33
34 #if (NTDDI_VERSION >= NTDDI_WIN8)
35
36 typedef enum TA_PROPERTY {
37 TAP_FLAGS,
38 TAP_TRANSFORMCOUNT,
39 TAP_STAGGERDELAY,
40 TAP_STAGGERDELAYCAP,
41 TAP_STAGGERDELAYFACTOR,
42 TAP_ZORDER,
43 } TA_PROPERTY;
44
45 typedef enum TA_PROPERTY_FLAG {
46 TAPF_NONE = 0x0,
47 TAPF_HASSTAGGER = 0x1,
48 TAPF_ISRTLAWARE = 0x2,
49 TAPF_ALLOWCOLLECTION = 0x4,
50 TAPF_HASBACKGROUND = 0x8,
51 TAPF_HASPERSPECTIVE = 0x10,
52 } TA_PROPERTY_FLAG;
53
54 THEMEAPI GetThemeAnimationProperty(HTHEME hTheme, int iStoryboardId, int iTargetId, TA_PROPERTY eProperty, VOID *pvProperty, DWORD cbSize, DWORD *pcbSizeOut);
55
56 typedef enum TA_TRANSFORM_TYPE {
57 TATT_TRANSLATE_2D,
58 TATT_SCALE_2D,
59 TATT_OPACITY,
60 TATT_CLIP,
61 } TA_TRANSFORM_TYPE;
62
63 typedef enum TA_TRANSFORM_FLAG {
64 TATF_NONE = 0x0,
65 TATF_TARGETVALUES_USER = 0x1,
66 TATF_HASINITIALVALUES = 0x2,
67 TATF_HASORIGINVALUES = 0x4,
68 } TA_TRANSFORM_FLAG;
69
70 typedef struct TA_TRANSFORM {
71 TA_TRANSFORM_TYPE eTransformType;
72 DWORD dwTimingFunctionId;
73 DWORD dwStartTime;
74 DWORD dwDurationTime;
75 TA_TRANSFORM_FLAG eFlags;
76 } TA_TRANSFORM, *PTA_TRANSFORM;
77
78 typedef struct TA_TRANSFORM_2D {
79 TA_TRANSFORM header;
80 float rX;
81 float rY;
82 float rInitialX;
83 float rInitialY;
84 float rOriginX;
85 float rOriginY;
86 } TA_TRANSFORM_2D, *PTA_TRANSFORM_2D;
87
88 typedef struct TA_TRANSFORM_OPACITY {
89 TA_TRANSFORM header;
90 float rOpacity;
91 float rInitialOpacity;
92 } TA_TRANSFORM_OPACITY, *PTA_TRANSFORM_OPACITY;
93
94 typedef struct TA_TRANSFORM_CLIP {
95 TA_TRANSFORM header;
96 float rLeft;
97 float rTop;
98 float rRight;
99 float rBottom;
100 float rInitialLeft;
101 float rInitialTop;
102 float rInitialRight;
103 float rInitialBottom;
104 } TA_TRANSFORM_CLIP, *PTA_TRANSFORM_CLIP;
105
106 THEMEAPI GetThemeAnimationTransform(HTHEME hTheme, int iStoryboardId, int iTargetId, DWORD dwTransformIndex, TA_TRANSFORM *pTransform, DWORD cbSize, DWORD *pcbSizeOut);
107
108 typedef enum TA_TIMINGFUNCTION_TYPE {
109 TTFT_UNDEFINED,
110 TTFT_CUBIC_BEZIER,
111 } TA_TIMINGFUNCTION_TYPE;
112
113 typedef struct TA_TIMINGFUNCTION {
114 TA_TIMINGFUNCTION_TYPE eTimingFunctionType;
115 } TA_TIMINGFUNCTION, *PTA_TIMINGFUNCTION;
116
117 typedef struct TA_CUBIC_BEZIER {
118 TA_TIMINGFUNCTION header;
119 float rX0;
120 float rY0;
121 float rX1;
122 float rY1;
123 } TA_CUBIC_BEZIER, *PTA_CUBIC_BEZIER;
124
125 THEMEAPI GetThemeTimingFunction(HTHEME hTheme, int iTimingFunctionId, TA_TIMINGFUNCTION *pTimingFunction, DWORD cbSize, DWORD *pcbSizeOut);
126
127 #endif
128
129 #if (NTDDI_VERSION >= NTDDI_VISTA)
130
131 #define GBF_DIRECT 0x00000001
132 #define GBF_COPY 0x00000002
133 #define GBF_VALIDBITS (GBF_DIRECT | GBF_COPY)
134
135 THEMEAPI GetThemeBitmap(HTHEME hTheme,int iPartId,int iStateId,int iPropId,ULONG dwFlags,HBITMAP *phBitmap);
136 THEMEAPI GetThemeStream(HTHEME hTheme,int iPartId,int iStateId,int iPropId,VOID **ppvStream,DWORD *pcbStream,HINSTANCE hInst);
137 THEMEAPI GetThemeTransitionDuration(HTHEME hTheme,int iPartId,int iStateIdFrom,int iStateIdTo,int iPropId,DWORD *pdwDuration);
138
139 DECLARE_HANDLE(HPAINTBUFFER);
140
141 typedef enum _BP_BUFFERFORMAT {
142 BPBF_COMPATIBLEBITMAP,
143 BPBF_DIB,
144 BPBF_TOPDOWNDIB,
145 BPBF_TOPDOWNMONODIB
146 } BP_BUFFERFORMAT;
147
148 #define BPBF_COMPOSITED BPBF_TOPDOWNDIB
149
150 #define BPPF_ERASE 0x00000001
151 #define BPPF_NOCLIP 0x00000002
152 #define BPPF_NONCLIENT 0x00000004
153
154 typedef struct _BP_PAINTPARAMS {
155 DWORD cbSize;
156 DWORD dwFlags;
157 const RECT *prcExclude;
158 const BLENDFUNCTION *pBlendFunction;
159 } BP_PAINTPARAMS, *PBP_PAINTPARAMS;
160
161 THEMEAPI_(HPAINTBUFFER) BeginBufferedPaint(HDC hdcTarget,const RECT *prcTarget,BP_BUFFERFORMAT dwFormat,BP_PAINTPARAMS *pPaintParams,HDC *phdc);
162 THEMEAPI_(HRESULT) EndBufferedPaint(HPAINTBUFFER hBufferedPaint,WINBOOL fUpdateTarget);
163 THEMEAPI_(HRESULT) GetBufferedPaintTargetRect(HPAINTBUFFER hBufferedPaint,RECT *prc);
164 THEMEAPI_(HDC) GetBufferedPaintTargetDC(HPAINTBUFFER hBufferedPaint);
165 THEMEAPI_(HDC) GetBufferedPaintDC(HPAINTBUFFER hBufferedPaint);
166 THEMEAPI_(HRESULT) GetBufferedPaintBits(HPAINTBUFFER hBufferedPaint,RGBQUAD **ppbBuffer,int *pcxRow);
167 THEMEAPI_(HRESULT) BufferedPaintClear(HPAINTBUFFER hBufferedPaint,const RECT *prc);
168 THEMEAPI_(HRESULT) BufferedPaintSetAlpha(HPAINTBUFFER hBufferedPaint,const RECT *prc,BYTE alpha);
169 #define BufferedPaintMakeOpaque(hBufferedPaint, prc) BufferedPaintSetAlpha(hBufferedPaint, prc, 255)
170 THEMEAPI_(HRESULT) BufferedPaintInit(VOID);
171 THEMEAPI_(HRESULT) BufferedPaintUnInit(VOID);
172
173 DECLARE_HANDLE(HANIMATIONBUFFER);
174
175 typedef enum _BP_ANIMATIONSTYLE {
176 BPAS_NONE,
177 BPAS_LINEAR,
178 BPAS_CUBIC,
179 BPAS_SINE
180 } BP_ANIMATIONSTYLE;
181
182 typedef struct _BP_ANIMATIONPARAMS {
183 DWORD cbSize;
184 DWORD dwFlags;
185 BP_ANIMATIONSTYLE style;
186 DWORD dwDuration;
187 } BP_ANIMATIONPARAMS, *PBP_ANIMATIONPARAMS;
188
189 THEMEAPI_(HANIMATIONBUFFER) BeginBufferedAnimation(HWND hwnd,HDC hdcTarget,const RECT *rcTarget,BP_BUFFERFORMAT dwFormat,BP_PAINTPARAMS *pPaintParams,BP_ANIMATIONPARAMS *pAnimationParams,HDC *phdcFrom,HDC *phdcTo);
190 THEMEAPI EndBufferedAnimation(HANIMATIONBUFFER hbpAnimation,WINBOOL fUpdateTarget);
191 THEMEAPI_(WINBOOL) BufferedPaintRenderAnimation(HWND hwnd,HDC hdcTarget);
192 THEMEAPI BufferedPaintStopAllAnimations(HWND hwnd);
193 THEMEAPI_(WINBOOL) IsCompositionActive(void);
194
195 typedef enum WINDOWTHEMEATTRIBUTETYPE {
196 WTA_NONCLIENT = 1
197 } WINDOWTHEMEATTRIBUTETYPE;
198
199 typedef struct _WTA_OPTIONS {
200 DWORD dwFlags;
201 DWORD dwMask;
202 } WTA_OPTIONS, *PWTA_OPTIONS;
203
204 #define WTNCA_NODRAWCAPTION 0x00000001
205 #define WTNCA_NODRAWICON 0x00000002
206 #define WTNCA_NOSYSMENU 0x00000004
207 #define WTNCA_NOMIRRORHELP 0x00000008
208 #define WTNCA_VALIDBITS (WTNCA_NODRAWCAPTION | WTNCA_NODRAWICON | WTNCA_NOSYSMENU | WTNCA_NOMIRRORHELP)
209
210 THEMEAPI SetWindowThemeAttribute(HWND hwnd,enum WINDOWTHEMEATTRIBUTETYPE eAttribute,PVOID pvAttribute,DWORD cbAttribute);
211
SetWindowThemeNonClientAttributes(HWND hwnd,DWORD dwMask,DWORD dwAttributes)212 static __inline HRESULT SetWindowThemeNonClientAttributes(HWND hwnd,DWORD dwMask,DWORD dwAttributes)
213 {
214 WTA_OPTIONS wta = { dwAttributes, dwMask };
215 return SetWindowThemeAttribute(hwnd, WTA_NONCLIENT, &wta, sizeof(WTA_OPTIONS));
216 }
217
218 #endif
219
220 THEMEAPI_(HTHEME) OpenThemeData(HWND hwnd,LPCWSTR pszClassList);
221
222 #define OTD_FORCE_RECT_SIZING 0x00000001
223 #define OTD_NONCLIENT 0x00000002
224 #define OTD_VALIDBITS (OTD_FORCE_RECT_SIZING | OTD_NONCLIENT)
225 THEMEAPI_(HTHEME) OpenThemeDataForDpi(HWND hwnd, LPCWSTR pszClassList, UINT dpi);
226 THEMEAPI_(HTHEME) OpenThemeDataEx(HWND hwnd,LPCWSTR pszClassList,DWORD dwFlags);
227 THEMEAPI CloseThemeData(HTHEME hTheme);
228 THEMEAPI DrawThemeBackground(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,const RECT *pRect,const RECT *pClipRect);
229
230 #define DTT_GRAYED 0x00000001
231 #define DTT_FLAGS2VALIDBITS DTT_GRAYED
232
233 THEMEAPI DrawThemeText(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,LPCWSTR pszText,int iCharCount,DWORD dwTextFlags,DWORD dwTextFlags2,const RECT *pRect);
234
235 #if (NTDDI_VERSION >= NTDDI_VISTA)
236
237 #define DTT_TEXTCOLOR (__MSABI_LONG(1U) << 0)
238 #define DTT_BORDERCOLOR (__MSABI_LONG(1U) << 1)
239 #define DTT_SHADOWCOLOR (__MSABI_LONG(1U) << 2)
240 #define DTT_SHADOWTYPE (__MSABI_LONG(1U) << 3)
241 #define DTT_SHADOWOFFSET (__MSABI_LONG(1U) << 4)
242 #define DTT_BORDERSIZE (__MSABI_LONG(1U) << 5)
243 #define DTT_FONTPROP (__MSABI_LONG(1U) << 6)
244 #define DTT_COLORPROP (__MSABI_LONG(1U) << 7)
245 #define DTT_STATEID (__MSABI_LONG(1U) << 8)
246 #define DTT_CALCRECT (__MSABI_LONG(1U) << 9)
247 #define DTT_APPLYOVERLAY (__MSABI_LONG(1U) << 10)
248 #define DTT_GLOWSIZE (__MSABI_LONG(1U) << 11)
249 #define DTT_CALLBACK (__MSABI_LONG(1U) << 12)
250 #define DTT_COMPOSITED (__MSABI_LONG(1U) << 13)
251 #define DTT_VALIDBITS (DTT_TEXTCOLOR | DTT_BORDERCOLOR | DTT_SHADOWCOLOR | DTT_SHADOWTYPE | DTT_SHADOWOFFSET | DTT_BORDERSIZE | \
252 DTT_FONTPROP | DTT_COLORPROP | DTT_STATEID | DTT_CALCRECT | DTT_APPLYOVERLAY | DTT_GLOWSIZE | DTT_COMPOSITED)
253
254 typedef int (WINAPI *DTT_CALLBACK_PROC)(HDC hdc,LPWSTR pszText,int cchText,LPRECT prc,UINT dwFlags,LPARAM lParam);
255
256 typedef struct _DTTOPTS {
257 DWORD dwSize;
258 DWORD dwFlags;
259 COLORREF crText;
260 COLORREF crBorder;
261 COLORREF crShadow;
262 int iTextShadowType;
263 POINT ptShadowOffset;
264 int iBorderSize;
265 int iFontPropId;
266 int iColorPropId;
267 int iStateId;
268 WINBOOL fApplyOverlay;
269 int iGlowSize;
270 DTT_CALLBACK_PROC pfnDrawTextCallback;
271 LPARAM lParam;
272 } DTTOPTS, *PDTTOPTS;
273
274 THEMEAPI DrawThemeTextEx(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,LPCWSTR pszText,int iCharCount,DWORD dwFlags,LPRECT pRect,const DTTOPTS *pOptions);
275 #endif
276
277 THEMEAPI GetThemeBackgroundContentRect(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,const RECT *pBoundingRect,RECT *pContentRect);
278 THEMEAPI GetThemeBackgroundExtent(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,const RECT *pContentRect,RECT *pExtentRect);
279
280 typedef enum THEMESIZE {
281 TS_MIN,
282 TS_TRUE,
283 TS_DRAW
284 } THEMESIZE;
285
286 THEMEAPI GetThemePartSize(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,RECT *prc,enum THEMESIZE eSize,SIZE *psz);
287 THEMEAPI GetThemeTextExtent(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,LPCWSTR pszText,int iCharCount,DWORD dwTextFlags,const RECT *pBoundingRect,RECT *pExtentRect);
288 THEMEAPI GetThemeTextMetrics(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,TEXTMETRIC *ptm);
289 THEMEAPI GetThemeBackgroundRegion(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,const RECT *pRect,HRGN *pRegion);
290
291 #define HTTB_BACKGROUNDSEG 0x0000
292 #define HTTB_FIXEDBORDER 0x0002
293 #define HTTB_CAPTION 0x0004
294 #define HTTB_RESIZINGBORDER_LEFT 0x0010
295 #define HTTB_RESIZINGBORDER_TOP 0x0020
296 #define HTTB_RESIZINGBORDER_RIGHT 0x0040
297 #define HTTB_RESIZINGBORDER_BOTTOM 0x0080
298
299 #define HTTB_RESIZINGBORDER (HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP| HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM)
300
301 #define HTTB_SIZINGTEMPLATE 0x0100
302 #define HTTB_SYSTEMSIZINGMARGINS 0x0200
303
304 THEMEAPI HitTestThemeBackground(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,DWORD dwOptions,const RECT *pRect,HRGN hrgn,POINT ptTest,WORD *pwHitTestCode);
305 THEMEAPI DrawThemeEdge(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,const RECT *pDestRect,UINT uEdge,UINT uFlags,RECT *pContentRect);
306 THEMEAPI DrawThemeIcon(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,const RECT *pRect,HIMAGELIST himl,int iImageIndex);
307 THEMEAPI_(WINBOOL) IsThemePartDefined(HTHEME hTheme,int iPartId,int iStateId);
308 THEMEAPI_(WINBOOL) IsThemeBackgroundPartiallyTransparent(HTHEME hTheme,int iPartId,int iStateId);
309 THEMEAPI GetThemeColor(HTHEME hTheme,int iPartId,int iStateId,int iPropId,COLORREF *pColor);
310 THEMEAPI GetThemeMetric(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,int iPropId,int *piVal);
311 THEMEAPI GetThemeString(HTHEME hTheme,int iPartId,int iStateId,int iPropId,LPWSTR pszBuff,int cchMaxBuffChars);
312 THEMEAPI GetThemeBool(HTHEME hTheme,int iPartId,int iStateId,int iPropId,WINBOOL *pfVal);
313 THEMEAPI GetThemeInt(HTHEME hTheme,int iPartId,int iStateId,int iPropId,int *piVal);
314 THEMEAPI GetThemeEnumValue(HTHEME hTheme,int iPartId,int iStateId,int iPropId,int *piVal);
315 THEMEAPI GetThemePosition(HTHEME hTheme,int iPartId,int iStateId,int iPropId,POINT *pPoint);
316 THEMEAPI GetThemeFont(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,int iPropId,LOGFONTW *pFont);
317 THEMEAPI GetThemeRect(HTHEME hTheme,int iPartId,int iStateId,int iPropId,RECT *pRect);
318
319 typedef struct _MARGINS {
320 int cxLeftWidth;
321 int cxRightWidth;
322 int cyTopHeight;
323 int cyBottomHeight;
324 } MARGINS,*PMARGINS;
325
326 THEMEAPI GetThemeMargins(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,int iPropId,RECT *prc,MARGINS *pMargins);
327
328 #if (NTDDI_VERSION >= NTDDI_VISTA)
329 #define MAX_INTLIST_COUNT 402
330 #else
331 #define MAX_INTLIST_COUNT 10
332 #endif
333
334 typedef struct _INTLIST {
335 int iValueCount;
336 int iValues[MAX_INTLIST_COUNT];
337 } INTLIST,*PINTLIST;
338
339 THEMEAPI GetThemeIntList(HTHEME hTheme,int iPartId,int iStateId,int iPropId,INTLIST *pIntList);
340
341 typedef enum PROPERTYORIGIN {
342 PO_STATE,
343 PO_PART,
344 PO_CLASS,
345 PO_GLOBAL,
346 PO_NOTFOUND
347 } PROPERTYORIGIN;
348
349 THEMEAPI GetThemePropertyOrigin(HTHEME hTheme,int iPartId,int iStateId,int iPropId,enum PROPERTYORIGIN *pOrigin);
350 THEMEAPI SetWindowTheme(HWND hwnd,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList);
351 THEMEAPI GetThemeFilename(HTHEME hTheme,int iPartId,int iStateId,int iPropId,LPWSTR pszThemeFileName,int cchMaxBuffChars);
352 THEMEAPI_(COLORREF) GetThemeSysColor(HTHEME hTheme,int iColorId);
353 THEMEAPI_(HBRUSH) GetThemeSysColorBrush(HTHEME hTheme,int iColorId);
354 THEMEAPI_(WINBOOL) GetThemeSysBool(HTHEME hTheme,int iBoolId);
355 THEMEAPI_(int) GetThemeSysSize(HTHEME hTheme,int iSizeId);
356 THEMEAPI GetThemeSysFont(HTHEME hTheme,int iFontId,LOGFONT *plf);
357 THEMEAPI GetThemeSysString(HTHEME hTheme,int iStringId,LPWSTR pszStringBuff,int cchMaxStringChars);
358 THEMEAPI GetThemeSysInt(HTHEME hTheme,int iIntId,int *piValue);
359 THEMEAPI_(WINBOOL) IsThemeActive();
360 THEMEAPI_(WINBOOL) IsAppThemed();
361 THEMEAPI_(HTHEME) GetWindowTheme(HWND hwnd);
362
363 #define ETDT_DISABLE 0x00000001
364 #define ETDT_ENABLE 0x00000002
365 #define ETDT_USETABTEXTURE 0x00000004
366 #define ETDT_ENABLETAB (ETDT_ENABLE | ETDT_USETABTEXTURE)
367 #if (NTDDI_VERSION >= NTDDI_VISTA)
368 #define ETDT_USEAEROWIZARDTABTEXTURE 0x00000008
369 #define ETDT_ENABLEAEROWIZARDTAB (ETDT_ENABLE | ETDT_USEAEROWIZARDTABTEXTURE)
370 #define ETDT_VALIDBITS (ETDT_DISABLE | ETDT_ENABLE | ETDT_USETABTEXTURE | ETDT_USEAEROWIZARDTABTEXTURE)
371 #endif
372
373 THEMEAPI EnableThemeDialogTexture(HWND hwnd,DWORD dwFlags);
374 THEMEAPI_(WINBOOL) IsThemeDialogTextureEnabled(HWND hwnd);
375
376 #define STAP_ALLOW_NONCLIENT (1 << 0)
377 #define STAP_ALLOW_CONTROLS (1 << 1)
378 #define STAP_ALLOW_WEBCONTENT (1 << 2)
379 #define STAP_VALIDBITS (STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS | STAP_ALLOW_WEBCONTENT)
380
381 THEMEAPI_(DWORD) GetThemeAppProperties(VOID);
382 THEMEAPI_(void) SetThemeAppProperties(DWORD dwFlags);
383 THEMEAPI GetCurrentThemeName(LPWSTR pszThemeFileName,int cchMaxNameChars,LPWSTR pszColorBuff,int cchMaxColorChars,LPWSTR pszSizeBuff,int cchMaxSizeChars);
384
385 #define SZ_THDOCPROP_DISPLAYNAME L"DisplayName"
386 #define SZ_THDOCPROP_CANONICALNAME L"ThemeName"
387 #define SZ_THDOCPROP_TOOLTIP L"ToolTip"
388 #define SZ_THDOCPROP_AUTHOR L"author"
389
390 THEMEAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName,LPCWSTR pszPropertyName,LPWSTR pszValueBuff,int cchMaxValChars);
391 THEMEAPI DrawThemeParentBackground(HWND hwnd,HDC hdc,RECT *prc);
392
393 #if (NTDDI_VERSION >= NTDDI_VISTA)
394 #define DTPB_WINDOWDC 0x00000001
395 #define DTPB_USECTLCOLORSTATIC 0x00000002
396 #define DTPB_USEERASEBKGND 0x00000004
397
398 THEMEAPI DrawThemeParentBackgroundEx(HWND hwnd,HDC hdc,DWORD dwFlags,const RECT *prc);
399 #endif
400
401 THEMEAPI EnableTheming(WINBOOL fEnable);
402
403 #define DTBG_CLIPRECT 0x00000001
404 #define DTBG_DRAWSOLID 0x00000002
405 #define DTBG_OMITBORDER 0x00000004
406 #define DTBG_OMITCONTENT 0x00000008
407 #define DTBG_COMPUTINGREGION 0x00000010
408 #define DTBG_MIRRORDC 0x00000020
409 #define DTBG_NOMIRROR 0x00000040
410 #define DTBG_VALIDBITS (DTBG_CLIPRECT | DTBG_DRAWSOLID | DTBG_OMITBORDER | DTBG_OMITCONTENT | DTBG_COMPUTINGREGION | DTBG_MIRRORDC | DTBG_NOMIRROR)
411
412 typedef struct _DTBGOPTS {
413 DWORD dwSize;
414 DWORD dwFlags;
415 RECT rcClip;
416 } DTBGOPTS,*PDTBGOPTS;
417
418 THEMEAPI DrawThemeBackgroundEx(HTHEME hTheme,HDC hdc,int iPartId,int iStateId,const RECT *pRect,const DTBGOPTS *pOptions);
419 #endif
420