shcore: Use CRT allocation functions.
[wine.git] / dlls / uxtheme / msstyles.h
blob98e1aa045d66a440174758f4e81dd86b7d1d1f9a
1 /*
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
24 #define TMT_ENUM 200
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 {
31 int iPrimitiveType;
32 int iPropertyId;
33 PROPERTYORIGIN origin;
35 LPCWSTR lpValue;
36 DWORD dwValueLen;
38 struct _THEME_PROPERTY *next;
39 } THEME_PROPERTY, *PTHEME_PROPERTY;
41 typedef struct _THEME_PARTSTATE {
42 int iPartId;
43 int iStateId;
44 PTHEME_PROPERTY properties;
46 struct _THEME_PARTSTATE *next;
47 } THEME_PARTSTATE, *PTHEME_PARTSTATE;
49 struct _THEME_FILE;
51 typedef struct _THEME_CLASS {
52 DWORD signature;
53 LONG refcount;
54 HMODULE hTheme;
55 struct _THEME_FILE* tf;
56 WCHAR szAppName[MAX_THEME_APP_NAME];
57 WCHAR szClassName[MAX_THEME_CLASS_NAME];
58 UINT dpi;
59 PTHEME_PARTSTATE partstate;
60 struct _THEME_CLASS *overrides;
62 struct _THEME_CLASS *next;
63 } THEME_CLASS, *PTHEME_CLASS;
65 typedef struct _THEME_IMAGE {
66 WCHAR name[MAX_PATH];
67 HBITMAP image;
68 BOOL hasAlpha;
70 struct _THEME_IMAGE *next;
71 } THEME_IMAGE, *PTHEME_IMAGE;
73 typedef struct _THEME_FILE {
74 LONG refcount;
75 HMODULE hTheme;
76 WCHAR szThemeFile[MAX_PATH];
77 LPWSTR pszAvailColors;
78 LPWSTR pszAvailSizes;
80 LPWSTR pszSelectedColor;
81 LPWSTR pszSelectedSize;
83 PTHEME_CLASS classes;
84 PTHEME_PROPERTY metrics;
85 PTHEME_IMAGE images;
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;
123 #endif