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 #define OTD_FORCE_RECT_SIZING 0x0001 37 #define OTD_NONCLIENT 0x0002 38 #define OTD_VALIDBITS (OTD_FORCE_RECT_SIZING | OTD_NONCLIENT) 39 40 typedef HANDLE HPAINTBUFFER; 41 typedef HANDLE HTHEME; 42 43 typedef enum _BP_BUFFERFORMAT 44 { 45 BPBF_COMPATIBLEBITMAP, 46 BPBF_DIB, 47 BPBF_TOPDOWNDIB, 48 BPBF_TOPDOWNMONODIB 49 } BP_BUFFERFORMAT; 50 51 typedef struct _BP_PAINTPARAMS 52 { 53 DWORD cbSize; 54 DWORD dwFlags; 55 const RECT *prcExclude; 56 const BLENDFUNCTION *pBlendFunction; 57 } BP_PAINTPARAMS, *PBP_PAINTPARAMS; 58 59 typedef enum PROPERTYORIGIN { 60 PO_STATE = 0, 61 PO_PART = 1, 62 PO_CLASS = 2, 63 PO_GLOBAL = 3, 64 PO_NOTFOUND = 4 65 } PROPERTYORIGIN; 66 67 typedef enum THEMESIZE { 68 TS_MIN, 69 TS_TRUE, 70 TS_DRAW 71 } THEMESIZE; 72 73 typedef struct _DTBGOPTS { 74 DWORD dwSize; 75 DWORD dwFlags; 76 RECT rcClip; 77 } DTBGOPTS, *PDTBGOPTS; 78 79 #define MAX_INTLIST_COUNT 10 80 81 typedef struct _INTLIST { 82 int iValueCount; 83 int iValues[MAX_INTLIST_COUNT]; 84 } INTLIST, *PINTLIST; 85 86 typedef struct _MARGINS { 87 int cxLeftWidth; 88 int cxRightWidth; 89 int cyTopHeight; 90 int cyBottomHeight; 91 } MARGINS, *PMARGINS; 92 93 HRESULT WINAPI CloseThemeData(HTHEME); 94 HRESULT WINAPI DrawThemeBackground(HTHEME,HDC,int,int,const RECT*,const RECT*); 95 HRESULT WINAPI DrawThemeBackgroundEx(HTHEME,HDC,int,int,const RECT*,const DTBGOPTS*); 96 HRESULT WINAPI DrawThemeEdge(HTHEME,HDC,int,int,const RECT*,UINT,UINT,RECT*); 97 HRESULT WINAPI DrawThemeIcon(HTHEME,HDC,int,int,const RECT*,HIMAGELIST,int); 98 HRESULT WINAPI DrawThemeParentBackground(HWND,HDC,RECT*); 99 HRESULT WINAPI DrawThemeText(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD,const RECT*); 100 HRESULT WINAPI EnableThemeDialogTexture(HWND,DWORD); 101 HRESULT WINAPI EnableTheming(BOOL); 102 HRESULT WINAPI GetCurrentThemeName(LPWSTR,int,LPWSTR,int,LPWSTR,int); 103 DWORD WINAPI GetThemeAppProperties(void); 104 HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME,HDC,int,int,const RECT*,RECT*); 105 HRESULT WINAPI GetThemeBackgroundExtent(HTHEME,HDC,int,int,const RECT*,RECT*); 106 HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*); 107 HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*); 108 HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*); 109 HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR,LPCWSTR,LPWSTR,int); 110 HRESULT WINAPI GetThemeEnumValue(HTHEME,int,int,int,int*); 111 HRESULT WINAPI GetThemeFilename(HTHEME,int,int,int,LPWSTR,int); 112 HRESULT WINAPI GetThemeFont(HTHEME,HDC,int,int,int,LOGFONTW*); 113 HRESULT WINAPI GetThemeInt(HTHEME,int,int,int,int*); 114 HRESULT WINAPI GetThemeIntList(HTHEME,int,int,int,INTLIST*); 115 HRESULT WINAPI GetThemeMargins(HTHEME,HDC,int,int,int,RECT*,MARGINS*); 116 HRESULT WINAPI GetThemeMetric(HTHEME,HDC,int,int,int,int*); 117 HRESULT WINAPI GetThemePartSize(HTHEME,HDC,int,int,RECT*,THEMESIZE,SIZE*); 118 HRESULT WINAPI GetThemePosition(HTHEME,int,int,int,POINT*); 119 HRESULT WINAPI GetThemePropertyOrigin(HTHEME,int,int,int,PROPERTYORIGIN*); 120 HRESULT WINAPI GetThemeRect(HTHEME,int,int,int,RECT*); 121 HRESULT WINAPI GetThemeString(HTHEME,int,int,int,LPWSTR,int); 122 BOOL WINAPI GetThemeSysBool(HTHEME,int); 123 COLORREF WINAPI GetThemeSysColor(HTHEME,int); 124 HBRUSH WINAPI GetThemeSysColorBrush(HTHEME,int); 125 HRESULT WINAPI GetThemeSysFont(HTHEME,int,LOGFONTW*); 126 HRESULT WINAPI GetThemeSysInt(HTHEME,int,int*); 127 int WINAPI GetThemeSysSize(HTHEME,int); 128 HRESULT WINAPI GetThemeSysString(HTHEME,int,LPWSTR,int); 129 HRESULT WINAPI GetThemeTextExtent(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,const RECT*,RECT*); 130 HRESULT WINAPI GetThemeTextMetrics(HTHEME,HDC,int,int,TEXTMETRICW*); 131 HTHEME WINAPI GetWindowTheme(HWND); 132 HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*,HRGN,POINT,WORD*); 133 BOOL WINAPI IsAppThemed(void); 134 BOOL WINAPI IsThemeActive(void); 135 BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int); 136 BOOL WINAPI IsThemeDialogTextureEnabled(HWND); 137 BOOL WINAPI IsThemePartDefined(HTHEME,int,int); 138 HTHEME WINAPI OpenThemeData(HWND,LPCWSTR); 139 HTHEME WINAPI OpenThemeDataEx(HWND,LPCWSTR,DWORD); 140 void WINAPI SetThemeAppProperties(DWORD); 141 HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR); 142 #endif 143 144 #ifdef __cplusplus 145 } 146 #endif 147 #endif 148