3 typedef HANDLE HTHEMEFILE
;
5 /**********************************************************************
8 * Callback function for EnumThemes.
11 * TRUE to continue enumeration, FALSE to stop
15 * pszThemeFileName Full path to theme msstyles file
16 * pszThemeName Display name for theme
17 * pszToolTip Tooltip name for theme
18 * lpReserved2 Always 0
19 * lpData Value passed through lpData from EnumThemes
21 typedef BOOL (CALLBACK
*ENUMTHEMEPROC
)(LPVOID lpReserved
, LPCWSTR pszThemeFileName
,
22 LPCWSTR pszThemeName
, LPCWSTR pszToolTip
, LPVOID lpReserved2
,
25 /**********************************************************************
26 * PARSETHEMEINIFILEPROC
28 * Callback function for ParseThemeIniFile.
31 * TRUE to continue enumeration, FALSE to stop
35 * pszParam1 Use defined by entry type
36 * pszParam2 Use defined by entry type
37 * pszParam3 Use defined by entry type
38 * dwParam Use defined by entry type
39 * lpData Value passed through lpData from ParseThemeIniFile
42 * I don't know what the valid entry types are
44 typedef BOOL (CALLBACK
* PARSETHEMEINIFILEPROC
)(DWORD dwType
, LPWSTR pszParam1
,
45 LPWSTR pszParam2
, LPWSTR pszParam3
,
46 DWORD dwParam
, LPVOID lpData
);
48 /* Structure filled in by EnumThemeColors() and EnumeThemeSizes() with the
49 * various strings for a theme color or size. */
50 typedef struct tagTHEMENAMES
52 WCHAR szName
[MAX_PATH
+1];
53 WCHAR szDisplayName
[MAX_PATH
+1];
54 WCHAR szTooltip
[MAX_PATH
+1];
55 } THEMENAMES
, *PTHEMENAMES
;
57 /* Declarations for undocumented functions for use internally */
58 DWORD WINAPI
QueryThemeServices(void);
60 HRESULT WINAPI
OpenThemeFile(LPCWSTR pszThemeFileName
,
63 HTHEMEFILE
*hThemeFile
,
66 HRESULT WINAPI
CloseThemeFile(HTHEMEFILE hThemeFile
);
68 HRESULT WINAPI
ApplyTheme(HTHEMEFILE hThemeFile
,
72 HRESULT WINAPI
GetThemeDefaults(LPCWSTR pszThemeFileName
,
78 HRESULT WINAPI
EnumThemes(LPCWSTR pszThemePath
,
79 ENUMTHEMEPROC callback
,
82 HRESULT WINAPI
EnumThemeColors(LPWSTR pszThemeFileName
,
85 PTHEMENAMES pszColorNames
);
87 HRESULT WINAPI
EnumThemeSizes(LPWSTR pszThemeFileName
,
90 PTHEMENAMES pszColorNames
);
92 HRESULT WINAPI
ParseThemeIniFile(LPCWSTR pszIniFileName
,
94 PARSETHEMEINIFILEPROC callback
,
97 HTHEME WINAPI
OpenThemeDataFromFile(HTHEMEFILE hThemeFile
,
102 /* The DNCP_* flags let the caller decide what should be painted */
103 #define DNCP_ACTIVEWINDOW 0x1
104 #define DNCP_INACTIVEWINDOW 0x2
105 #define DNCP_DIALOGWINDOW 0x4
106 #define DNCP_DRAW_ALL DNCP_ACTIVEWINDOW | DNCP_INACTIVEWINDOW | DNCP_DIALOGWINDOW
108 HRESULT WINAPI
DrawNCPreview(HDC hDC
,
111 LPCWSTR pszThemeFileName
,
112 LPCWSTR pszColorName
,
114 PNONCLIENTMETRICSW pncMetrics
,
115 COLORREF
* lpaRgbValues
);
117 BOOL WINAPI
ThemeHooksInstall(VOID
);
119 BOOL WINAPI
ThemeHooksRemove(VOID
);