[CONSRV]
[reactos.git] / include / reactos / uxundoc.h
1 #pragma once
2
3 typedef HANDLE HTHEMEFILE;
4
5 /**********************************************************************
6 * ENUMTHEMEPROC
7 *
8 * Callback function for EnumThemes.
9 *
10 * RETURNS
11 * TRUE to continue enumeration, FALSE to stop
12 *
13 * PARAMS
14 * lpReserved Always 0
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
20 */
21 typedef BOOL (CALLBACK *ENUMTHEMEPROC)(LPVOID lpReserved, LPCWSTR pszThemeFileName,
22 LPCWSTR pszThemeName, LPCWSTR pszToolTip, LPVOID lpReserved2,
23 LPVOID lpData);
24
25 /**********************************************************************
26 * PARSETHEMEINIFILEPROC
27 *
28 * Callback function for ParseThemeIniFile.
29 *
30 * RETURNS
31 * TRUE to continue enumeration, FALSE to stop
32 *
33 * PARAMS
34 * dwType Entry type
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
40 *
41 * NOTES
42 * I don't know what the valid entry types are
43 */
44 typedef BOOL (CALLBACK* PARSETHEMEINIFILEPROC)(DWORD dwType, LPWSTR pszParam1,
45 LPWSTR pszParam2, LPWSTR pszParam3,
46 DWORD dwParam, LPVOID lpData);
47
48 /* Structure filled in by EnumThemeColors() and EnumeThemeSizes() with the
49 * various strings for a theme color or size. */
50 typedef struct tagTHEMENAMES
51 {
52 WCHAR szName[MAX_PATH+1];
53 WCHAR szDisplayName[MAX_PATH+1];
54 WCHAR szTooltip[MAX_PATH+1];
55 } THEMENAMES, *PTHEMENAMES;
56
57 /* Declarations for undocumented functions for use internally */
58 DWORD WINAPI QueryThemeServices(void);
59 HRESULT WINAPI OpenThemeFile(LPCWSTR pszThemeFileName, LPCWSTR pszColorName,
60 LPCWSTR pszSizeName, HTHEMEFILE *hThemeFile,
61 DWORD unknown);
62 HRESULT WINAPI CloseThemeFile(HTHEMEFILE hThemeFile);
63 HRESULT WINAPI ApplyTheme(HTHEMEFILE hThemeFile, char *unknown, HWND hWnd);
64 HRESULT WINAPI GetThemeDefaults(LPCWSTR pszThemeFileName, LPWSTR pszColorName,
65 DWORD dwColorNameLen, LPWSTR pszSizeName,
66 DWORD dwSizeNameLen);
67 HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, ENUMTHEMEPROC callback,
68 LPVOID lpData);
69 HRESULT WINAPI EnumThemeColors(LPWSTR pszThemeFileName, LPWSTR pszSizeName,
70 DWORD dwColorNum, PTHEMENAMES pszColorNames);
71 HRESULT WINAPI EnumThemeSizes(LPWSTR pszThemeFileName, LPWSTR pszColorName,
72 DWORD dwSizeNum, PTHEMENAMES pszColorNames);
73 HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown,
74 PARSETHEMEINIFILEPROC callback, LPVOID lpData);
75
76 BOOL WINAPI ThemeHooksInstall();
77 BOOL WINAPI ThemeHooksRemove();
78