/* * Internal uxtheme defines & declarations * * Copyright (C) 2003 Kevin Koltzau * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef __WINE_UXTHEMEDLL_H #define __WINE_UXTHEMEDLL_H #include #include #include #include typedef HANDLE HTHEMEFILE; /********************************************************************** * EnumThemeProc * * Callback function for EnumThemes. * * RETURNS * TRUE to continue enumeration, FALSE to stop * * PARAMS * lpReserved Always 0 * pszThemeFileName Full path to theme msstyles file * pszThemeName Display name for theme * pszToolTip Tooltip name for theme * lpReserved2 Always 0 * lpData Value passed through lpData from EnumThemes */ typedef BOOL (CALLBACK *EnumThemeProc)(LPVOID lpReserved, LPCWSTR pszThemeFileName, LPCWSTR pszThemeName, LPCWSTR pszToolTip, LPVOID lpReserved2, LPVOID lpData); /********************************************************************** * ParseThemeIniFileProc * * Callback function for ParseThemeIniFile. * * RETURNS * TRUE to continue enumeration, FALSE to stop * * PARAMS * dwType Entry type * pszParam1 Use defined by entry type * pszParam2 Use defined by entry type * pszParam3 Use defined by entry type * dwParam Use defined by entry type * lpData Value passed through lpData from ParseThemeIniFile * * NOTES * I don't know what the valid entry types are */ typedef BOOL (CALLBACK*ParseThemeIniFileProc)(DWORD dwType, LPWSTR pszParam1, LPWSTR pszParam2, LPWSTR pszParam3, DWORD dwParam, LPVOID lpData); /* Structure filled in by EnumThemeColors() and EnumeThemeSizes() with the * various strings for a theme color or size. */ typedef struct tagTHEMENAMES { WCHAR szName[MAX_PATH+1]; WCHAR szDisplayName[MAX_PATH+1]; WCHAR szTooltip[MAX_PATH+1]; } THEMENAMES, *PTHEMENAMES; /* Declarations for undocumented functions for use internally */ DWORD WINAPI QueryThemeServices(void) DECLSPEC_HIDDEN; HRESULT WINAPI OpenThemeFile(LPCWSTR pszThemeFileName, LPCWSTR pszColorName, LPCWSTR pszSizeName, HTHEMEFILE *hThemeFile, DWORD unknown) DECLSPEC_HIDDEN; HRESULT WINAPI CloseThemeFile(HTHEMEFILE hThemeFile) DECLSPEC_HIDDEN; HRESULT WINAPI ApplyTheme(HTHEMEFILE hThemeFile, char *unknown, HWND hWnd) DECLSPEC_HIDDEN; HRESULT WINAPI GetThemeDefaults(LPCWSTR pszThemeFileName, LPWSTR pszColorName, DWORD dwColorNameLen, LPWSTR pszSizeName, DWORD dwSizeNameLen) DECLSPEC_HIDDEN; HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback, LPVOID lpData) DECLSPEC_HIDDEN; HRESULT WINAPI EnumThemeColors(LPWSTR pszThemeFileName, LPWSTR pszSizeName, DWORD dwColorNum, PTHEMENAMES pszColorNames) DECLSPEC_HIDDEN; HRESULT WINAPI EnumThemeSizes(LPWSTR pszThemeFileName, LPWSTR pszColorName, DWORD dwSizeNum, PTHEMENAMES pszColorNames) DECLSPEC_HIDDEN; HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown, ParseThemeIniFileProc callback, LPVOID lpData) DECLSPEC_HIDDEN; BOOL WINAPI ThemeHooksInstall(void) DECLSPEC_HIDDEN; BOOL WINAPI ThemeHooksRemove(void) DECLSPEC_HIDDEN; extern void UXTHEME_InitSystem(HINSTANCE hInst) DECLSPEC_HIDDEN; extern HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf) DECLSPEC_HIDDEN; extern void UXTHEME_UninitSystem(void) DECLSPEC_HIDDEN; extern struct user_api_hook user_api DECLSPEC_HIDDEN; void WINAPI UXTHEME_ScrollBarDraw(HWND hwnd, HDC dc, INT bar, enum SCROLL_HITTEST hit_test, const struct SCROLL_TRACKING_INFO *tracking_info, BOOL draw_arrows, BOOL draw_interior, RECT *rect, INT arrowsize, INT thumbpos, INT thumbsize, BOOL vertical) DECLSPEC_HIDDEN; LRESULT WINAPI UXTHEME_ScrollbarWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL unicode) DECLSPEC_HIDDEN; /* No alpha blending */ #define ALPHABLEND_NONE 0 /* "Cheap" binary alpha blending - but possibly faster */ #define ALPHABLEND_BINARY 1 /* Full alpha blending */ #define ALPHABLEND_FULL 2 #endif /* __WINE_UXTHEMEDLL_H */