2 * Internal msstyles related 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_MSSTYLES_H
22 #define __WINE_MSSTYLES_H
26 #define MAX_THEME_APP_NAME 60
27 #define MAX_THEME_CLASS_NAME 60
28 #define MAX_THEME_VALUE_NAME 60
30 typedef struct _THEME_PROPERTY
{
33 PROPERTYORIGIN origin
;
38 struct _THEME_PROPERTY
*next
;
39 } THEME_PROPERTY
, *PTHEME_PROPERTY
;
41 typedef struct _THEME_PARTSTATE
{
44 PTHEME_PROPERTY properties
;
46 struct _THEME_PARTSTATE
*next
;
47 } THEME_PARTSTATE
, *PTHEME_PARTSTATE
;
51 typedef struct _THEME_CLASS
{
55 struct _THEME_FILE
* tf
;
56 WCHAR szAppName
[MAX_THEME_APP_NAME
];
57 WCHAR szClassName
[MAX_THEME_CLASS_NAME
];
59 PTHEME_PARTSTATE partstate
;
60 struct _THEME_CLASS
*overrides
;
62 struct _THEME_CLASS
*next
;
63 } THEME_CLASS
, *PTHEME_CLASS
;
65 typedef struct _THEME_IMAGE
{
70 struct _THEME_IMAGE
*next
;
71 } THEME_IMAGE
, *PTHEME_IMAGE
;
73 typedef struct _THEME_FILE
{
76 WCHAR szThemeFile
[MAX_PATH
];
77 LPWSTR pszAvailColors
;
80 LPWSTR pszSelectedColor
;
81 LPWSTR pszSelectedSize
;
84 PTHEME_PROPERTY metrics
;
86 } THEME_FILE
, *PTHEME_FILE
;
88 typedef struct _UXINI_FILE
*PUXINI_FILE
;
90 HRESULT
MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile
, LPCWSTR pszColorName
, LPCWSTR pszSizeName
, PTHEME_FILE
*tf
) DECLSPEC_HIDDEN
;
91 void MSSTYLES_CloseThemeFile(PTHEME_FILE tf
) DECLSPEC_HIDDEN
;
92 HRESULT
MSSTYLES_SetActiveTheme(PTHEME_FILE tf
, BOOL setMetrics
) DECLSPEC_HIDDEN
;
93 PTHEME_CLASS
MSSTYLES_OpenThemeClass(LPCWSTR pszAppName
, LPCWSTR pszClassList
, UINT dpi
) DECLSPEC_HIDDEN
;
94 HRESULT
MSSTYLES_CloseThemeClass(PTHEME_CLASS tc
) DECLSPEC_HIDDEN
;
95 BOOL
MSSTYLES_LookupProperty(LPCWSTR pszPropertyName
, int *dwPrimitive
, int *dwId
) DECLSPEC_HIDDEN
;
96 BOOL
MSSTYLES_LookupEnum(LPCWSTR pszValueName
, int dwEnum
, int *dwValue
) DECLSPEC_HIDDEN
;
97 BOOL
MSSTYLES_LookupPartState(LPCWSTR pszClass
, LPCWSTR pszPart
, LPCWSTR pszState
, int *iPartId
, int *iStateId
) DECLSPEC_HIDDEN
;
98 PUXINI_FILE
MSSTYLES_GetThemeIni(PTHEME_FILE tf
) DECLSPEC_HIDDEN
;
99 UINT
MSSTYLES_GetThemeDPI(PTHEME_CLASS tc
) DECLSPEC_HIDDEN
;
100 PTHEME_PARTSTATE
MSSTYLES_FindPart(PTHEME_CLASS tc
, int iPartId
) DECLSPEC_HIDDEN
;
101 PTHEME_PARTSTATE
MSSTYLES_FindPartState(PTHEME_CLASS tc
, int iPartId
, int iStateId
, PTHEME_CLASS
*tcNext
) DECLSPEC_HIDDEN
;
102 PTHEME_PROPERTY
MSSTYLES_FindProperty(PTHEME_CLASS tc
, int iPartId
, int iStateId
, int iPropertyPrimitive
, int iPropertyId
) DECLSPEC_HIDDEN
;
103 PTHEME_PROPERTY
MSSTYLES_FindMetric(int iPropertyPrimitive
, int iPropertyId
) DECLSPEC_HIDDEN
;
104 HBITMAP
MSSTYLES_LoadBitmap(PTHEME_CLASS tc
, LPCWSTR lpFilename
, BOOL
* hasAlpha
) DECLSPEC_HIDDEN
;
106 HRESULT
MSSTYLES_GetPropertyBool(PTHEME_PROPERTY tp
, BOOL
*pfVal
) DECLSPEC_HIDDEN
;
107 HRESULT
MSSTYLES_GetPropertyColor(PTHEME_PROPERTY tp
, COLORREF
*pColor
) DECLSPEC_HIDDEN
;
108 HRESULT
MSSTYLES_GetPropertyFont(PTHEME_PROPERTY tp
, HDC hdc
, LOGFONTW
*pFont
) DECLSPEC_HIDDEN
;
109 HRESULT
MSSTYLES_GetPropertyInt(PTHEME_PROPERTY tp
, int *piVal
) DECLSPEC_HIDDEN
;
110 HRESULT
MSSTYLES_GetPropertyIntList(PTHEME_PROPERTY tp
, INTLIST
*pIntList
) DECLSPEC_HIDDEN
;
111 HRESULT
MSSTYLES_GetPropertyPosition(PTHEME_PROPERTY tp
, POINT
*pPoint
) DECLSPEC_HIDDEN
;
112 HRESULT
MSSTYLES_GetPropertyString(PTHEME_PROPERTY tp
, LPWSTR pszBuff
, int cchMaxBuffChars
) DECLSPEC_HIDDEN
;
113 HRESULT
MSSTYLES_GetPropertyRect(PTHEME_PROPERTY tp
, RECT
*pRect
) DECLSPEC_HIDDEN
;
114 HRESULT
MSSTYLES_GetPropertyMargins(PTHEME_PROPERTY tp
, RECT
*prc
, MARGINS
*pMargins
) DECLSPEC_HIDDEN
;
116 PUXINI_FILE
UXINI_LoadINI(HMODULE hTheme
, LPCWSTR lpName
) DECLSPEC_HIDDEN
;
117 void UXINI_CloseINI(PUXINI_FILE uf
) DECLSPEC_HIDDEN
;
118 LPCWSTR
UXINI_GetNextSection(PUXINI_FILE uf
, DWORD
*dwLen
) DECLSPEC_HIDDEN
;
119 BOOL
UXINI_FindSection(PUXINI_FILE uf
, LPCWSTR lpName
) DECLSPEC_HIDDEN
;
120 LPCWSTR
UXINI_GetNextValue(PUXINI_FILE uf
, DWORD
*dwNameLen
, LPCWSTR
*lpValue
, DWORD
*dwValueLen
) DECLSPEC_HIDDEN
;
121 BOOL
UXINI_FindValue(PUXINI_FILE uf
, LPCWSTR lpName
, LPCWSTR
*lpValue
, DWORD
*dwValueLen
) DECLSPEC_HIDDEN
;