winewayland.drv: Update desktop window size on display changes.
[wine.git] / dlls / uxtheme / uxthemedll.h
blob7abc2a581447b2636637806723426b2898f8c6b6
1 /*
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
24 #include <wingdi.h>
25 #include <winuser.h>
26 #include <uxtheme.h>
27 #include <msstyles.h>
29 typedef HANDLE HTHEMEFILE;
31 /**********************************************************************
32 * EnumThemeProc
34 * Callback function for EnumThemes.
36 * RETURNS
37 * TRUE to continue enumeration, FALSE to stop
39 * PARAMS
40 * lpReserved Always 0
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,
49 LPVOID lpData);
51 /**********************************************************************
52 * ParseThemeIniFileProc
54 * Callback function for ParseThemeIniFile.
56 * RETURNS
57 * TRUE to continue enumeration, FALSE to stop
59 * PARAMS
60 * dwType Entry type
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
67 * NOTES
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 */