2 * Internal uxtheme defines & declarations
4 * Copyright (C) 2003 Kevin Koltzau
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WINE_UXTHEMEDLL_H
22 #define __WINE_UXTHEMEDLL_H
29 typedef HANDLE HTHEMEFILE
;
31 /**********************************************************************
34 * Callback function for EnumThemes.
37 * TRUE to continue enumeration, FALSE to stop
41 * pszThemeFileName Full path to theme msstyles file
42 * pszThemeName Display name for theme
43 * pszToolTip Tooltip name for theme
44 * lpReserved2 Always 0
45 * lpData Value passed through lpData from EnumThemes
47 typedef BOOL (CALLBACK
*EnumThemeProc
)(LPVOID lpReserved
, LPCWSTR pszThemeFileName
,
48 LPCWSTR pszThemeName
, LPCWSTR pszToolTip
, LPVOID lpReserved2
,
51 /**********************************************************************
52 * ParseThemeIniFileProc
54 * Callback function for ParseThemeIniFile.
57 * TRUE to continue enumeration, FALSE to stop
61 * pszParam1 Use defined by entry type
62 * pszParam2 Use defined by entry type
63 * pszParam3 Use defined by entry type
64 * dwParam Use defined by entry type
65 * lpData Value passed through lpData from ParseThemeIniFile
68 * I don't know what the valid entry types are
70 typedef BOOL (CALLBACK
*ParseThemeIniFileProc
)(DWORD dwType
, LPWSTR pszParam1
,
71 LPWSTR pszParam2
, LPWSTR pszParam3
,
72 DWORD dwParam
, LPVOID lpData
);
74 /* Structure filled in by EnumThemeColors() and EnumeThemeSizes() with the
75 * various strings for a theme color or size. */
76 typedef struct tagTHEMENAMES
78 WCHAR szName
[MAX_PATH
+1];
79 WCHAR szDisplayName
[MAX_PATH
+1];
80 WCHAR szTooltip
[MAX_PATH
+1];
81 } THEMENAMES
, *PTHEMENAMES
;
83 /* Declarations for undocumented functions for use internally */
84 DWORD WINAPI
QueryThemeServices(void) DECLSPEC_HIDDEN
;
85 HRESULT WINAPI
OpenThemeFile(LPCWSTR pszThemeFileName
, LPCWSTR pszColorName
,
86 LPCWSTR pszSizeName
, HTHEMEFILE
*hThemeFile
,
87 DWORD unknown
) DECLSPEC_HIDDEN
;
88 HRESULT WINAPI
CloseThemeFile(HTHEMEFILE hThemeFile
) DECLSPEC_HIDDEN
;
89 HRESULT WINAPI
ApplyTheme(HTHEMEFILE hThemeFile
, char *unknown
, HWND hWnd
) DECLSPEC_HIDDEN
;
90 HRESULT WINAPI
GetThemeDefaults(LPCWSTR pszThemeFileName
, LPWSTR pszColorName
,
91 DWORD dwColorNameLen
, LPWSTR pszSizeName
,
92 DWORD dwSizeNameLen
) DECLSPEC_HIDDEN
;
93 HRESULT WINAPI
EnumThemes(LPCWSTR pszThemePath
, EnumThemeProc callback
,
94 LPVOID lpData
) DECLSPEC_HIDDEN
;
95 HRESULT WINAPI
EnumThemeColors(LPWSTR pszThemeFileName
, LPWSTR pszSizeName
,
96 DWORD dwColorNum
, PTHEMENAMES pszColorNames
) DECLSPEC_HIDDEN
;
97 HRESULT WINAPI
EnumThemeSizes(LPWSTR pszThemeFileName
, LPWSTR pszColorName
,
98 DWORD dwSizeNum
, PTHEMENAMES pszColorNames
) DECLSPEC_HIDDEN
;
99 HRESULT WINAPI
ParseThemeIniFile(LPCWSTR pszIniFileName
, LPWSTR pszUnknown
,
100 ParseThemeIniFileProc callback
, LPVOID lpData
) DECLSPEC_HIDDEN
;
101 BOOL WINAPI
ThemeHooksInstall(void) DECLSPEC_HIDDEN
;
102 BOOL WINAPI
ThemeHooksRemove(void) DECLSPEC_HIDDEN
;
104 extern void UXTHEME_InitSystem(HINSTANCE hInst
) DECLSPEC_HIDDEN
;
105 extern HRESULT
UXTHEME_SetActiveTheme(PTHEME_FILE tf
) DECLSPEC_HIDDEN
;
106 extern void UXTHEME_UninitSystem(void) DECLSPEC_HIDDEN
;
108 extern struct user_api_hook user_api DECLSPEC_HIDDEN
;
109 LRESULT WINAPI
UXTHEME_DefDlgProc(HWND hwnd
, UINT msg
, WPARAM wparam
, LPARAM lparam
, BOOL unicode
) DECLSPEC_HIDDEN
;
110 void WINAPI
UXTHEME_NonClientButtonDraw(HWND hwnd
, HDC hdc
, enum NONCLIENT_BUTTON_TYPE type
,
111 RECT rect
, BOOL down
, BOOL grayed
) DECLSPEC_HIDDEN
;
112 void WINAPI
UXTHEME_ScrollBarDraw(HWND hwnd
, HDC dc
, INT bar
, enum SCROLL_HITTEST hit_test
,
113 const struct SCROLL_TRACKING_INFO
*tracking_info
,
114 BOOL draw_arrows
, BOOL draw_interior
, RECT
*rect
, UINT enable_flags
,
115 INT arrowsize
, INT thumbpos
, INT thumbsize
, BOOL vertical
) DECLSPEC_HIDDEN
;
116 LRESULT WINAPI
UXTHEME_ScrollbarWndProc(HWND hwnd
, UINT msg
, WPARAM wParam
, LPARAM lParam
,
117 BOOL unicode
) DECLSPEC_HIDDEN
;
119 /* No alpha blending */
120 #define ALPHABLEND_NONE 0
121 /* "Cheap" binary alpha blending - but possibly faster */
122 #define ALPHABLEND_BINARY 1
123 /* Full alpha blending */
124 #define ALPHABLEND_FULL 2
126 #endif /* __WINE_UXTHEMEDLL_H */