reshuffling of dlls
[reactos.git] / reactos / dll / win32 / uxtheme / stylemap.c
1 /*
2 * msstyle data maps
3 *
4 * Copyright (C) 2004 Kevin Koltzau
5 *
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.
10 *
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.
15 *
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21 #include "config.h"
22
23 #include <stdarg.h>
24
25 #include "windef.h"
26 #include "winbase.h"
27 #include "winuser.h"
28 #include "tmschema.h"
29
30 #define TMT_ENUM 200
31
32 #include "wine/debug.h"
33
34 WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
35
36 typedef struct _MSSTYLES_PROPERTY_MAP {
37 WORD dwPrimitiveType;
38 WORD dwPropertyID;
39 WCHAR szPropertyName[24];
40 } MSSTYLES_PROPERTY_MAP, *PMSSTYLES_PROPERTY_MAP;
41
42 typedef struct _MSSTYLES_ENUM_MAP {
43 WORD dwEnum;
44 WORD dwValue;
45 WCHAR szValueName[18];
46 } MSSTYLES_ENUM_MAP, *PMSSTYLES_ENUM_MAP;
47
48 typedef struct _MSSTYLES_CLASS_MAP {
49 WORD dwPartID;
50 WORD dwStateID;
51 WCHAR szName[31];
52 } MSSTYLES_CLASS_MAP, *PMSSTYLES_CLASS_MAP;
53
54 typedef struct _MSSTYLES_CLASS_NAME {
55 const MSSTYLES_CLASS_MAP *lpMap;
56 WCHAR pszClass[12];
57 } MSSTYLES_CLASS_NAME, *PMSSTYLES_CLASS_NAME;
58
59 /***********************************************************************
60 * Map property names to IDs & primitive types
61 * PrimitiveType,PropertyID,PropertyName
62 */
63 static const MSSTYLES_PROPERTY_MAP mapProperty[] = {
64 {TMT_STRING,TMT_STRING,{'S','T','R','I','N','G','\0'}},
65 {TMT_INT,TMT_INT,{'I','N','T','\0'}},
66 {TMT_BOOL,TMT_BOOL,{'B','O','O','L','\0'}},
67 {TMT_COLOR,TMT_COLOR,{'C','O','L','O','R','\0'}},
68 {TMT_MARGINS,TMT_MARGINS,{'M','A','R','G','I','N','S','\0'}},
69 {TMT_FILENAME,TMT_FILENAME,{'F','I','L','E','N','A','M','E','\0'}},
70 {TMT_SIZE,TMT_SIZE,{'S','I','Z','E','\0'}},
71 {TMT_POSITION,TMT_POSITION,{'P','O','S','I','T','I','O','N','\0'}},
72 {TMT_RECT,TMT_RECT,{'R','E','C','T','\0'}},
73 {TMT_FONT,TMT_FONT,{'F','O','N','T','\0'}},
74 {TMT_INTLIST,TMT_INTLIST,{'I','N','T','L','I','S','T','\0'}},
75 {TMT_STRING,TMT_COLORSCHEMES,{'C','O','L','O','R','S','C','H','E','M','E','S','\0'}},
76 {TMT_STRING,TMT_SIZES,{'S','I','Z','E','S','\0'}},
77 {TMT_INT,TMT_CHARSET,{'C','H','A','R','S','E','T','\0'}},
78 {TMT_STRING,TMT_DISPLAYNAME,{'D','I','S','P','L','A','Y','N','A','M','E','\0'}},
79 {TMT_STRING,TMT_TOOLTIP,{'T','O','O','L','T','I','P','\0'}},
80 {TMT_STRING,TMT_COMPANY,{'C','O','M','P','A','N','Y','\0'}},
81 {TMT_STRING,TMT_AUTHOR,{'A','U','T','H','O','R','\0'}},
82 {TMT_STRING,TMT_COPYRIGHT,{'C','O','P','Y','R','I','G','H','T','\0'}},
83 {TMT_STRING,TMT_URL,{'U','R','L','\0'}},
84 {TMT_STRING,TMT_VERSION,{'V','E','R','S','I','O','N','\0'}},
85 {TMT_STRING,TMT_DESCRIPTION,{'D','E','S','C','R','I','P','T','I','O','N','\0'}},
86 {TMT_FONT,TMT_CAPTIONFONT,{'C','A','P','T','I','O','N','F','O','N','T','\0'}},
87 {TMT_FONT,TMT_SMALLCAPTIONFONT,{'S','M','A','L','L','C','A','P','T','I','O','N','F','O','N','T','\0'}},
88 {TMT_FONT,TMT_MENUFONT,{'M','E','N','U','F','O','N','T','\0'}},
89 {TMT_FONT,TMT_STATUSFONT,{'S','T','A','T','U','S','F','O','N','T','\0'}},
90 {TMT_FONT,TMT_MSGBOXFONT,{'M','S','G','B','O','X','F','O','N','T','\0'}},
91 {TMT_FONT,TMT_ICONTITLEFONT,{'I','C','O','N','T','I','T','L','E','F','O','N','T','\0'}},
92 {TMT_BOOL,TMT_FLATMENUS,{'F','L','A','T','M','E','N','U','S','\0'}},
93 {TMT_SIZE,TMT_SIZINGBORDERWIDTH,{'S','I','Z','I','N','G','B','O','R','D','E','R','W','I','D','T','H','\0'}},
94 {TMT_SIZE,TMT_SCROLLBARWIDTH,{'S','C','R','O','L','L','B','A','R','W','I','D','T','H','\0'}},
95 {TMT_SIZE,TMT_SCROLLBARHEIGHT,{'S','C','R','O','L','L','B','A','R','H','E','I','G','H','T','\0'}},
96 {TMT_SIZE,TMT_CAPTIONBARWIDTH,{'C','A','P','T','I','O','N','B','A','R','W','I','D','T','H','\0'}},
97 {TMT_SIZE,TMT_CAPTIONBARHEIGHT,{'C','A','P','T','I','O','N','B','A','R','H','E','I','G','H','T','\0'}},
98 {TMT_SIZE,TMT_SMCAPTIONBARWIDTH,{'S','M','C','A','P','T','I','O','N','B','A','R','W','I','D','T','H','\0'}},
99 {TMT_SIZE,TMT_SMCAPTIONBARHEIGHT,{'S','M','C','A','P','T','I','O','N','B','A','R','H','E','I','G','H','T','\0'}},
100 {TMT_SIZE,TMT_MENUBARWIDTH,{'M','E','N','U','B','A','R','W','I','D','T','H','\0'}},
101 {TMT_SIZE,TMT_MENUBARHEIGHT,{'M','E','N','U','B','A','R','H','E','I','G','H','T','\0'}},
102 {TMT_INT,TMT_MINCOLORDEPTH,{'M','I','N','C','O','L','O','R','D','E','P','T','H','\0'}},
103 {TMT_STRING,TMT_CSSNAME,{'C','S','S','N','A','M','E','\0'}},
104 {TMT_STRING,TMT_XMLNAME,{'X','M','L','N','A','M','E','\0'}},
105 {TMT_COLOR,TMT_SCROLLBAR,{'S','C','R','O','L','L','B','A','R','\0'}},
106 {TMT_COLOR,TMT_BACKGROUND,{'B','A','C','K','G','R','O','U','N','D','\0'}},
107 {TMT_COLOR,TMT_ACTIVECAPTION,{'A','C','T','I','V','E','C','A','P','T','I','O','N','\0'}},
108 {TMT_COLOR,TMT_INACTIVECAPTION,{'I','N','A','C','T','I','V','E','C','A','P','T','I','O','N','\0'}},
109 {TMT_COLOR,TMT_MENU,{'M','E','N','U','\0'}},
110 {TMT_COLOR,TMT_WINDOW,{'W','I','N','D','O','W','\0'}},
111 {TMT_COLOR,TMT_WINDOWFRAME,{'W','I','N','D','O','W','F','R','A','M','E','\0'}},
112 {TMT_COLOR,TMT_MENUTEXT,{'M','E','N','U','T','E','X','T','\0'}},
113 {TMT_COLOR,TMT_WINDOWTEXT,{'W','I','N','D','O','W','T','E','X','T','\0'}},
114 {TMT_COLOR,TMT_CAPTIONTEXT,{'C','A','P','T','I','O','N','T','E','X','T','\0'}},
115 {TMT_COLOR,TMT_ACTIVEBORDER,{'A','C','T','I','V','E','B','O','R','D','E','R','\0'}},
116 {TMT_COLOR,TMT_INACTIVEBORDER,{'I','N','A','C','T','I','V','E','B','O','R','D','E','R','\0'}},
117 {TMT_COLOR,TMT_APPWORKSPACE,{'A','P','P','W','O','R','K','S','P','A','C','E','\0'}},
118 {TMT_COLOR,TMT_HIGHLIGHT,{'H','I','G','H','L','I','G','H','T','\0'}},
119 {TMT_COLOR,TMT_HIGHLIGHTTEXT,{'H','I','G','H','L','I','G','H','T','T','E','X','T','\0'}},
120 {TMT_COLOR,TMT_BTNFACE,{'B','T','N','F','A','C','E','\0'}},
121 {TMT_COLOR,TMT_BTNSHADOW,{'B','T','N','S','H','A','D','O','W','\0'}},
122 {TMT_COLOR,TMT_GRAYTEXT,{'G','R','A','Y','T','E','X','T','\0'}},
123 {TMT_COLOR,TMT_BTNTEXT,{'B','T','N','T','E','X','T','\0'}},
124 {TMT_COLOR,TMT_INACTIVECAPTIONTEXT,{'I','N','A','C','T','I','V','E','C','A','P','T','I','O','N','T','E','X','T','\0'}},
125 {TMT_COLOR,TMT_BTNHIGHLIGHT,{'B','T','N','H','I','G','H','L','I','G','H','T','\0'}},
126 {TMT_COLOR,TMT_DKSHADOW3D,{'D','K','S','H','A','D','O','W','3','D','\0'}},
127 {TMT_COLOR,TMT_LIGHT3D,{'L','I','G','H','T','3','D','\0'}},
128 {TMT_COLOR,TMT_INFOTEXT,{'I','N','F','O','T','E','X','T','\0'}},
129 {TMT_COLOR,TMT_INFOBK,{'I','N','F','O','B','K','\0'}},
130 {TMT_COLOR,TMT_BUTTONALTERNATEFACE,{'B','U','T','T','O','N','A','L','T','E','R','N','A','T','E','F','A','C','E','\0'}},
131 {TMT_COLOR,TMT_HOTTRACKING,{'H','O','T','T','R','A','C','K','I','N','G','\0'}},
132 {TMT_COLOR,TMT_GRADIENTACTIVECAPTION,{'G','R','A','D','I','E','N','T','A','C','T','I','V','E','C','A','P','T','I','O','N','\0'}},
133 {TMT_COLOR,TMT_GRADIENTINACTIVECAPTION,{'G','R','A','D','I','E','N','T','I','N','A','C','T','I','V','E','C','A','P','T','I','O','N','\0'}},
134 {TMT_COLOR,TMT_MENUHILIGHT,{'M','E','N','U','H','I','L','I','G','H','T','\0'}},
135 {TMT_COLOR,TMT_MENUBAR,{'M','E','N','U','B','A','R','\0'}},
136 {TMT_INT,TMT_FROMHUE1,{'F','R','O','M','H','U','E','1','\0'}},
137 {TMT_INT,TMT_FROMHUE2,{'F','R','O','M','H','U','E','2','\0'}},
138 {TMT_INT,TMT_FROMHUE3,{'F','R','O','M','H','U','E','3','\0'}},
139 {TMT_INT,TMT_FROMHUE4,{'F','R','O','M','H','U','E','4','\0'}},
140 {TMT_INT,TMT_FROMHUE5,{'F','R','O','M','H','U','E','5','\0'}},
141 {TMT_INT,TMT_TOHUE1,{'T','O','H','U','E','1','\0'}},
142 {TMT_INT,TMT_TOHUE2,{'T','O','H','U','E','2','\0'}},
143 {TMT_INT,TMT_TOHUE3,{'T','O','H','U','E','3','\0'}},
144 {TMT_INT,TMT_TOHUE4,{'T','O','H','U','E','4','\0'}},
145 {TMT_INT,TMT_TOHUE5,{'T','O','H','U','E','5','\0'}},
146 {TMT_COLOR,TMT_FROMCOLOR1,{'F','R','O','M','C','O','L','O','R','1','\0'}},
147 {TMT_COLOR,TMT_FROMCOLOR2,{'F','R','O','M','C','O','L','O','R','2','\0'}},
148 {TMT_COLOR,TMT_FROMCOLOR3,{'F','R','O','M','C','O','L','O','R','3','\0'}},
149 {TMT_COLOR,TMT_FROMCOLOR4,{'F','R','O','M','C','O','L','O','R','4','\0'}},
150 {TMT_COLOR,TMT_FROMCOLOR5,{'F','R','O','M','C','O','L','O','R','5','\0'}},
151 {TMT_COLOR,TMT_TOCOLOR1,{'T','O','C','O','L','O','R','1','\0'}},
152 {TMT_COLOR,TMT_TOCOLOR2,{'T','O','C','O','L','O','R','2','\0'}},
153 {TMT_COLOR,TMT_TOCOLOR3,{'T','O','C','O','L','O','R','3','\0'}},
154 {TMT_COLOR,TMT_TOCOLOR4,{'T','O','C','O','L','O','R','4','\0'}},
155 {TMT_COLOR,TMT_TOCOLOR5,{'T','O','C','O','L','O','R','5','\0'}},
156 {TMT_BOOL,TMT_TRANSPARENT,{'T','R','A','N','S','P','A','R','E','N','T','\0'}},
157 {TMT_BOOL,TMT_AUTOSIZE,{'A','U','T','O','S','I','Z','E','\0'}},
158 {TMT_BOOL,TMT_BORDERONLY,{'B','O','R','D','E','R','O','N','L','Y','\0'}},
159 {TMT_BOOL,TMT_COMPOSITED,{'C','O','M','P','O','S','I','T','E','D','\0'}},
160 {TMT_BOOL,TMT_BGFILL,{'B','G','F','I','L','L','\0'}},
161 {TMT_BOOL,TMT_GLYPHTRANSPARENT,{'G','L','Y','P','H','T','R','A','N','S','P','A','R','E','N','T','\0'}},
162 {TMT_BOOL,TMT_GLYPHONLY,{'G','L','Y','P','H','O','N','L','Y','\0'}},
163 {TMT_BOOL,TMT_ALWAYSSHOWSIZINGBAR,{'A','L','W','A','Y','S','S','H','O','W','S','I','Z','I','N','G','B','A','R','\0'}},
164 {TMT_BOOL,TMT_MIRRORIMAGE,{'M','I','R','R','O','R','I','M','A','G','E','\0'}},
165 {TMT_BOOL,TMT_UNIFORMSIZING,{'U','N','I','F','O','R','M','S','I','Z','I','N','G','\0'}},
166 {TMT_BOOL,TMT_INTEGRALSIZING,{'I','N','T','E','G','R','A','L','S','I','Z','I','N','G','\0'}},
167 {TMT_BOOL,TMT_SOURCEGROW,{'S','O','U','R','C','E','G','R','O','W','\0'}},
168 {TMT_BOOL,TMT_SOURCESHRINK,{'S','O','U','R','C','E','S','H','R','I','N','K','\0'}},
169 {TMT_INT,TMT_IMAGECOUNT,{'I','M','A','G','E','C','O','U','N','T','\0'}},
170 {TMT_INT,TMT_ALPHALEVEL,{'A','L','P','H','A','L','E','V','E','L','\0'}},
171 {TMT_INT,TMT_BORDERSIZE,{'B','O','R','D','E','R','S','I','Z','E','\0'}},
172 {TMT_INT,TMT_ROUNDCORNERWIDTH,{'R','O','U','N','D','C','O','R','N','E','R','W','I','D','T','H','\0'}},
173 {TMT_INT,TMT_ROUNDCORNERHEIGHT,{'R','O','U','N','D','C','O','R','N','E','R','H','E','I','G','H','T','\0'}},
174 {TMT_INT,TMT_GRADIENTRATIO1,{'G','R','A','D','I','E','N','T','R','A','T','I','O','1','\0'}},
175 {TMT_INT,TMT_GRADIENTRATIO2,{'G','R','A','D','I','E','N','T','R','A','T','I','O','2','\0'}},
176 {TMT_INT,TMT_GRADIENTRATIO3,{'G','R','A','D','I','E','N','T','R','A','T','I','O','3','\0'}},
177 {TMT_INT,TMT_GRADIENTRATIO4,{'G','R','A','D','I','E','N','T','R','A','T','I','O','4','\0'}},
178 {TMT_INT,TMT_GRADIENTRATIO5,{'G','R','A','D','I','E','N','T','R','A','T','I','O','5','\0'}},
179 {TMT_INT,TMT_PROGRESSCHUNKSIZE,{'P','R','O','G','R','E','S','S','C','H','U','N','K','S','I','Z','E','\0'}},
180 {TMT_INT,TMT_PROGRESSSPACESIZE,{'P','R','O','G','R','E','S','S','S','P','A','C','E','S','I','Z','E','\0'}},
181 {TMT_INT,TMT_SATURATION,{'S','A','T','U','R','A','T','I','O','N','\0'}},
182 {TMT_INT,TMT_TEXTBORDERSIZE,{'T','E','X','T','B','O','R','D','E','R','S','I','Z','E','\0'}},
183 {TMT_INT,TMT_ALPHATHRESHOLD,{'A','L','P','H','A','T','H','R','E','S','H','O','L','D','\0'}},
184 {TMT_SIZE,TMT_WIDTH,{'W','I','D','T','H','\0'}},
185 {TMT_SIZE,TMT_HEIGHT,{'H','E','I','G','H','T','\0'}},
186 {TMT_INT,TMT_GLYPHINDEX,{'G','L','Y','P','H','I','N','D','E','X','\0'}},
187 {TMT_INT,TMT_TRUESIZESTRETCHMARK,{'T','R','U','E','S','I','Z','E','S','T','R','E','T','C','H','M','A','R','K','\0'}},
188 {TMT_INT,TMT_MINDPI1,{'M','I','N','D','P','I','1','\0'}},
189 {TMT_INT,TMT_MINDPI2,{'M','I','N','D','P','I','2','\0'}},
190 {TMT_INT,TMT_MINDPI3,{'M','I','N','D','P','I','3','\0'}},
191 {TMT_INT,TMT_MINDPI4,{'M','I','N','D','P','I','4','\0'}},
192 {TMT_INT,TMT_MINDPI5,{'M','I','N','D','P','I','5','\0'}},
193 {TMT_FONT,TMT_GLYPHFONT,{'G','L','Y','P','H','F','O','N','T','\0'}},
194 {TMT_FILENAME,TMT_IMAGEFILE,{'I','M','A','G','E','F','I','L','E','\0'}},
195 {TMT_FILENAME,TMT_IMAGEFILE1,{'I','M','A','G','E','F','I','L','E','1','\0'}},
196 {TMT_FILENAME,TMT_IMAGEFILE2,{'I','M','A','G','E','F','I','L','E','2','\0'}},
197 {TMT_FILENAME,TMT_IMAGEFILE3,{'I','M','A','G','E','F','I','L','E','3','\0'}},
198 {TMT_FILENAME,TMT_IMAGEFILE4,{'I','M','A','G','E','F','I','L','E','4','\0'}},
199 {TMT_FILENAME,TMT_IMAGEFILE5,{'I','M','A','G','E','F','I','L','E','5','\0'}},
200 {TMT_FILENAME,TMT_STOCKIMAGEFILE,{'S','T','O','C','K','I','M','A','G','E','F','I','L','E','\0'}},
201 {TMT_FILENAME,TMT_GLYPHIMAGEFILE,{'G','L','Y','P','H','I','M','A','G','E','F','I','L','E','\0'}},
202 {TMT_STRING,TMT_TEXT,{'T','E','X','T','\0'}},
203 {TMT_POSITION,TMT_OFFSET,{'O','F','F','S','E','T','\0'}},
204 {TMT_POSITION,TMT_TEXTSHADOWOFFSET,{'T','E','X','T','S','H','A','D','O','W','O','F','F','S','E','T','\0'}},
205 {TMT_POSITION,TMT_MINSIZE,{'M','I','N','S','I','Z','E','\0'}},
206 {TMT_POSITION,TMT_MINSIZE1,{'M','I','N','S','I','Z','E','1','\0'}},
207 {TMT_POSITION,TMT_MINSIZE2,{'M','I','N','S','I','Z','E','2','\0'}},
208 {TMT_POSITION,TMT_MINSIZE3,{'M','I','N','S','I','Z','E','3','\0'}},
209 {TMT_POSITION,TMT_MINSIZE4,{'M','I','N','S','I','Z','E','4','\0'}},
210 {TMT_POSITION,TMT_MINSIZE5,{'M','I','N','S','I','Z','E','5','\0'}},
211 {TMT_POSITION,TMT_NORMALSIZE,{'N','O','R','M','A','L','S','I','Z','E','\0'}},
212 {TMT_MARGINS,TMT_SIZINGMARGINS,{'S','I','Z','I','N','G','M','A','R','G','I','N','S','\0'}},
213 {TMT_MARGINS,TMT_CONTENTMARGINS,{'C','O','N','T','E','N','T','M','A','R','G','I','N','S','\0'}},
214 {TMT_MARGINS,TMT_CAPTIONMARGINS,{'C','A','P','T','I','O','N','M','A','R','G','I','N','S','\0'}},
215 {TMT_COLOR,TMT_BORDERCOLOR,{'B','O','R','D','E','R','C','O','L','O','R','\0'}},
216 {TMT_COLOR,TMT_FILLCOLOR,{'F','I','L','L','C','O','L','O','R','\0'}},
217 {TMT_COLOR,TMT_TEXTCOLOR,{'T','E','X','T','C','O','L','O','R','\0'}},
218 {TMT_COLOR,TMT_EDGELIGHTCOLOR,{'E','D','G','E','L','I','G','H','T','C','O','L','O','R','\0'}},
219 {TMT_COLOR,TMT_EDGEHIGHLIGHTCOLOR,{'E','D','G','E','H','I','G','H','L','I','G','H','T','C','O','L','O','R','\0'}},
220 {TMT_COLOR,TMT_EDGESHADOWCOLOR,{'E','D','G','E','S','H','A','D','O','W','C','O','L','O','R','\0'}},
221 {TMT_COLOR,TMT_EDGEDKSHADOWCOLOR,{'E','D','G','E','D','K','S','H','A','D','O','W','C','O','L','O','R','\0'}},
222 {TMT_COLOR,TMT_EDGEFILLCOLOR,{'E','D','G','E','F','I','L','L','C','O','L','O','R','\0'}},
223 {TMT_COLOR,TMT_TRANSPARENTCOLOR,{'T','R','A','N','S','P','A','R','E','N','T','C','O','L','O','R','\0'}},
224 {TMT_COLOR,TMT_GRADIENTCOLOR1,{'G','R','A','D','I','E','N','T','C','O','L','O','R','1','\0'}},
225 {TMT_COLOR,TMT_GRADIENTCOLOR2,{'G','R','A','D','I','E','N','T','C','O','L','O','R','2','\0'}},
226 {TMT_COLOR,TMT_GRADIENTCOLOR3,{'G','R','A','D','I','E','N','T','C','O','L','O','R','3','\0'}},
227 {TMT_COLOR,TMT_GRADIENTCOLOR4,{'G','R','A','D','I','E','N','T','C','O','L','O','R','4','\0'}},
228 {TMT_COLOR,TMT_GRADIENTCOLOR5,{'G','R','A','D','I','E','N','T','C','O','L','O','R','5','\0'}},
229 {TMT_COLOR,TMT_SHADOWCOLOR,{'S','H','A','D','O','W','C','O','L','O','R','\0'}},
230 {TMT_COLOR,TMT_GLOWCOLOR,{'G','L','O','W','C','O','L','O','R','\0'}},
231 {TMT_COLOR,TMT_TEXTBORDERCOLOR,{'T','E','X','T','B','O','R','D','E','R','C','O','L','O','R','\0'}},
232 {TMT_COLOR,TMT_TEXTSHADOWCOLOR,{'T','E','X','T','S','H','A','D','O','W','C','O','L','O','R','\0'}},
233 {TMT_COLOR,TMT_GLYPHTEXTCOLOR,{'G','L','Y','P','H','T','E','X','T','C','O','L','O','R','\0'}},
234 {TMT_COLOR,TMT_GLYPHTRANSPARENTCOLOR,{'G','L','Y','P','H','T','R','A','N','S','P','A','R','E','N','T','C','O','L','O','R','\0'}},
235 {TMT_COLOR,TMT_FILLCOLORHINT,{'F','I','L','L','C','O','L','O','R','H','I','N','T','\0'}},
236 {TMT_COLOR,TMT_BORDERCOLORHINT,{'B','O','R','D','E','R','C','O','L','O','R','H','I','N','T','\0'}},
237 {TMT_COLOR,TMT_ACCENTCOLORHINT,{'A','C','C','E','N','T','C','O','L','O','R','H','I','N','T','\0'}},
238 {TMT_ENUM,TMT_BGTYPE,{'B','G','T','Y','P','E','\0'}},
239 {TMT_ENUM,TMT_BORDERTYPE,{'B','O','R','D','E','R','T','Y','P','E','\0'}},
240 {TMT_ENUM,TMT_FILLTYPE,{'F','I','L','L','T','Y','P','E','\0'}},
241 {TMT_ENUM,TMT_SIZINGTYPE,{'S','I','Z','I','N','G','T','Y','P','E','\0'}},
242 {TMT_ENUM,TMT_HALIGN,{'H','A','L','I','G','N','\0'}},
243 {TMT_ENUM,TMT_CONTENTALIGNMENT,{'C','O','N','T','E','N','T','A','L','I','G','N','M','E','N','T','\0'}},
244 {TMT_ENUM,TMT_VALIGN,{'V','A','L','I','G','N','\0'}},
245 {TMT_ENUM,TMT_OFFSETTYPE,{'O','F','F','S','E','T','T','Y','P','E','\0'}},
246 {TMT_ENUM,TMT_ICONEFFECT,{'I','C','O','N','E','F','F','E','C','T','\0'}},
247 {TMT_ENUM,TMT_TEXTSHADOWTYPE,{'T','E','X','T','S','H','A','D','O','W','T','Y','P','E','\0'}},
248 {TMT_ENUM,TMT_IMAGELAYOUT,{'I','M','A','G','E','L','A','Y','O','U','T','\0'}},
249 {TMT_ENUM,TMT_GLYPHTYPE,{'G','L','Y','P','H','T','Y','P','E','\0'}},
250 {TMT_ENUM,TMT_IMAGESELECTTYPE,{'I','M','A','G','E','S','E','L','E','C','T','T','Y','P','E','\0'}},
251 {TMT_ENUM,TMT_GLYPHFONTSIZINGTYPE,{'G','L','Y','P','H','F','O','N','T','S','I','Z','I','N','G','T','Y','P','E','\0'}},
252 {TMT_ENUM,TMT_TRUESIZESCALINGTYPE,{'T','R','U','E','S','I','Z','E','S','C','A','L','I','N','G','T','Y','P','E','\0'}},
253 {TMT_BOOL,TMT_USERPICTURE,{'U','S','E','R','P','I','C','T','U','R','E','\0'}},
254 {TMT_RECT,TMT_DEFAULTPANESIZE,{'D','E','F','A','U','L','T','P','A','N','E','S','I','Z','E','\0'}},
255 {TMT_COLOR,TMT_BLENDCOLOR,{'B','L','E','N','D','C','O','L','O','R','\0'}},
256 {0,0,{'\0'}}
257 };
258
259 /***********************************************************************
260 * Map strings to enumeration values
261 * Enum,Value,ValueName
262 */
263 static const MSSTYLES_ENUM_MAP mapEnum[] = {
264 {TMT_BGTYPE,BT_IMAGEFILE,{'I','M','A','G','E','F','I','L','E','\0'}},
265 {TMT_BGTYPE,BT_BORDERFILL,{'B','O','R','D','E','R','F','I','L','L','\0'}},
266 {TMT_BGTYPE,BT_NONE,{'N','O','N','E','\0'}},
267 {TMT_IMAGELAYOUT,IL_VERTICAL,{'V','E','R','T','I','C','A','L','\0'}},
268 {TMT_IMAGELAYOUT,IL_HORIZONTAL,{'H','O','R','I','Z','O','N','T','A','L','\0'}},
269 {TMT_BORDERTYPE,BT_RECT,{'R','E','C','T','\0'}},
270 {TMT_BORDERTYPE,BT_ROUNDRECT,{'R','O','U','N','D','R','E','C','T','\0'}},
271 {TMT_BORDERTYPE,BT_ELLIPSE,{'E','L','L','I','P','S','E','\0'}},
272 {TMT_FILLTYPE,FT_SOLID,{'S','O','L','I','D','\0'}},
273 {TMT_FILLTYPE,FT_VERTGRADIENT,{'V','E','R','T','G','R','A','D','I','E','N','T','\0'}},
274 {TMT_FILLTYPE,FT_HORZGRADIENT,{'H','O','R','Z','G','R','A','D','I','E','N','T','\0'}},
275 {TMT_FILLTYPE,FT_RADIALGRADIENT,{'R','A','D','I','A','L','G','R','A','D','I','E','N','T','\0'}},
276 {TMT_FILLTYPE,FT_TILEIMAGE,{'T','I','L','E','I','M','A','G','E','\0'}},
277 {TMT_SIZINGTYPE,ST_TRUESIZE,{'T','R','U','E','S','I','Z','E','\0'}},
278 {TMT_SIZINGTYPE,ST_STRETCH,{'S','T','R','E','T','C','H','\0'}},
279 {TMT_SIZINGTYPE,ST_TILE,{'T','I','L','E','\0'}},
280 {TMT_HALIGN,HA_LEFT,{'L','E','F','T','\0'}},
281 {TMT_HALIGN,HA_CENTER,{'C','E','N','T','E','R','\0'}},
282 {TMT_HALIGN,HA_RIGHT,{'R','I','G','H','T','\0'}},
283 {TMT_CONTENTALIGNMENT,CA_LEFT,{'L','E','F','T','\0'}},
284 {TMT_CONTENTALIGNMENT,CA_CENTER,{'C','E','N','T','E','R','\0'}},
285 {TMT_CONTENTALIGNMENT,CA_RIGHT,{'R','I','G','H','T','\0'}},
286 {TMT_VALIGN,VA_TOP,{'T','O','P','\0'}},
287 {TMT_VALIGN,VA_CENTER,{'C','E','N','T','E','R','\0'}},
288 {TMT_VALIGN,VA_BOTTOM,{'B','O','T','T','O','M','\0'}},
289 {TMT_OFFSETTYPE,OT_TOPLEFT,{'T','O','P','L','E','F','T','\0'}},
290 {TMT_OFFSETTYPE,OT_TOPRIGHT,{'T','O','P','R','I','G','H','T','\0'}},
291 {TMT_OFFSETTYPE,OT_TOPMIDDLE,{'T','O','P','M','I','D','D','L','E','\0'}},
292 {TMT_OFFSETTYPE,OT_BOTTOMLEFT,{'B','O','T','T','O','M','L','E','F','T','\0'}},
293 {TMT_OFFSETTYPE,OT_BOTTOMRIGHT,{'B','O','T','T','O','M','R','I','G','H','T','\0'}},
294 {TMT_OFFSETTYPE,OT_BOTTOMMIDDLE,{'B','O','T','T','O','M','M','I','D','D','L','E','\0'}},
295 {TMT_OFFSETTYPE,OT_MIDDLELEFT,{'M','I','D','D','L','E','L','E','F','T','\0'}},
296 {TMT_OFFSETTYPE,OT_MIDDLERIGHT,{'M','I','D','D','L','E','R','I','G','H','T','\0'}},
297 {TMT_OFFSETTYPE,OT_LEFTOFCAPTION,{'L','E','F','T','O','F','C','A','P','T','I','O','N','\0'}},
298 {TMT_OFFSETTYPE,OT_RIGHTOFCAPTION,{'R','I','G','H','T','O','F','C','A','P','T','I','O','N','\0'}},
299 {TMT_OFFSETTYPE,OT_LEFTOFLASTBUTTON,{'L','E','F','T','O','F','L','A','S','T','B','U','T','T','O','N','\0'}},
300 {TMT_OFFSETTYPE,OT_RIGHTOFLASTBUTTON,{'R','I','G','H','T','O','F','L','A','S','T','B','U','T','T','O','N','\0'}},
301 {TMT_OFFSETTYPE,OT_ABOVELASTBUTTON,{'A','B','O','V','E','L','A','S','T','B','U','T','T','O','N','\0'}},
302 {TMT_OFFSETTYPE,OT_BELOWLASTBUTTON,{'B','E','L','O','W','L','A','S','T','B','U','T','T','O','N','\0'}},
303 {TMT_ICONEFFECT,ICE_NONE,{'N','O','N','E','\0'}},
304 {TMT_ICONEFFECT,ICE_GLOW,{'G','L','O','W','\0'}},
305 {TMT_ICONEFFECT,ICE_SHADOW,{'S','H','A','D','O','W','\0'}},
306 {TMT_ICONEFFECT,ICE_PULSE,{'P','U','L','S','E','\0'}},
307 {TMT_ICONEFFECT,ICE_ALPHA,{'A','L','P','H','A','\0'}},
308 {TMT_TEXTSHADOWTYPE,TST_NONE,{'N','O','N','E','\0'}},
309 {TMT_TEXTSHADOWTYPE,TST_SINGLE,{'S','I','N','G','L','E','\0'}},
310 {TMT_TEXTSHADOWTYPE,TST_CONTINUOUS,{'C','O','N','T','I','N','U','O','U','S','\0'}},
311 {TMT_GLYPHTYPE,GT_NONE,{'N','O','N','E','\0'}},
312 {TMT_GLYPHTYPE,GT_IMAGEGLYPH,{'I','M','A','G','E','G','L','Y','P','H','\0'}},
313 {TMT_GLYPHTYPE,GT_FONTGLYPH,{'F','O','N','T','G','L','Y','P','H','\0'}},
314 {TMT_IMAGESELECTTYPE,IST_NONE,{'N','O','N','E','\0'}},
315 {TMT_IMAGESELECTTYPE,IST_SIZE,{'S','I','Z','E','\0'}},
316 {TMT_IMAGESELECTTYPE,IST_DPI,{'D','P','I','\0'}},
317 {TMT_TRUESIZESCALINGTYPE,TSST_NONE,{'N','O','N','E','\0'}},
318 {TMT_TRUESIZESCALINGTYPE,TSST_SIZE,{'S','I','Z','E','\0'}},
319 {TMT_TRUESIZESCALINGTYPE,TSST_DPI,{'D','P','I','\0'}},
320 {TMT_GLYPHFONTSIZINGTYPE,GFST_NONE,{'N','O','N','E','\0'}},
321 {TMT_GLYPHFONTSIZINGTYPE,GFST_SIZE,{'S','I','Z','E','\0'}},
322 {TMT_GLYPHFONTSIZINGTYPE,GFST_DPI,{'D','P','I','\0'}},
323 {0,0,{'\0'}}
324 };
325
326
327 /***********************************************************************
328 * Classes defined below
329 * Defined as PartID,StateID,TextName
330 * If StateID == 0 then its a part being defined
331 */
332
333 /* These are globals to all classes, but its treated as a separate class */
334 static const MSSTYLES_CLASS_MAP classGlobals[] = {
335 {GP_BORDER,0,{'B','O','R','D','E','R','\0'}},
336 {GP_BORDER,BSS_FLAT,{'F','L','A','T','\0'}},
337 {GP_BORDER,BSS_RAISED,{'R','A','I','S','E','D','\0'}},
338 {GP_BORDER,BSS_SUNKEN,{'S','U','N','K','E','N','\0'}},
339 {GP_LINEHORZ,0,{'L','I','N','E','H','O','R','Z','\0'}},
340 {GP_LINEHORZ,LHS_FLAT,{'F','L','A','T','\0'}},
341 {GP_LINEHORZ,LHS_RAISED,{'R','A','I','S','E','D','\0'}},
342 {GP_LINEHORZ,LHS_SUNKEN,{'S','U','N','K','E','N','\0'}},
343 {GP_LINEVERT,0,{'L','I','N','E','V','E','R','T','\0'}},
344 {GP_LINEVERT,LVS_FLAT,{'F','L','A','T','\0'}},
345 {GP_LINEVERT,LVS_RAISED,{'R','A','I','S','E','D','\0'}},
346 {GP_LINEVERT,LVS_SUNKEN,{'S','U','N','K','E','N','\0'}},
347 {0,0,{'\0'}}
348 };
349
350 static const MSSTYLES_CLASS_MAP classButton[] = {
351 {BP_PUSHBUTTON,0,{'P','U','S','H','B','U','T','T','O','N','\0'}},
352 {BP_PUSHBUTTON,PBS_NORMAL,{'N','O','R','M','A','L','\0'}},
353 {BP_PUSHBUTTON,PBS_HOT,{'H','O','T','\0'}},
354 {BP_PUSHBUTTON,PBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
355 {BP_PUSHBUTTON,PBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
356 {BP_PUSHBUTTON,PBS_DEFAULTED,{'D','E','F','A','U','L','T','E','D','\0'}},
357 {BP_RADIOBUTTON,0,{'R','A','D','I','O','B','U','T','T','O','N','\0'}},
358 {BP_RADIOBUTTON,RBS_UNCHECKEDNORMAL,{'U','N','C','H','E','C','K','E','D','N','O','R','M','A','L','\0'}},
359 {BP_RADIOBUTTON,RBS_UNCHECKEDHOT,{'U','N','C','H','E','C','K','E','D','H','O','T','\0'}},
360 {BP_RADIOBUTTON,RBS_UNCHECKEDPRESSED,{'U','N','C','H','E','C','K','E','D','P','R','E','S','S','E','D','\0'}},
361 {BP_RADIOBUTTON,RBS_UNCHECKEDDISABLED,{'U','N','C','H','E','C','K','E','D','D','I','S','A','B','L','E','D','\0'}},
362 {BP_RADIOBUTTON,RBS_CHECKEDNORMAL,{'C','H','E','C','K','E','D','N','O','R','M','A','L','\0'}},
363 {BP_RADIOBUTTON,RBS_CHECKEDHOT,{'C','H','E','C','K','E','D','H','O','T','\0'}},
364 {BP_RADIOBUTTON,RBS_CHECKEDPRESSED,{'C','H','E','C','K','E','D','P','R','E','S','S','E','D','\0'}},
365 {BP_RADIOBUTTON,RBS_CHECKEDDISABLED,{'C','H','E','C','K','E','D','D','I','S','A','B','L','E','D','\0'}},
366 {BP_CHECKBOX,0,{'C','H','E','C','K','B','O','X','\0'}},
367 {BP_RADIOBUTTON,CBS_UNCHECKEDNORMAL,{'U','N','C','H','E','C','K','E','D','N','O','R','M','A','L','\0'}},
368 {BP_RADIOBUTTON,CBS_UNCHECKEDHOT,{'U','N','C','H','E','C','K','E','D','H','O','T','\0'}},
369 {BP_RADIOBUTTON,CBS_UNCHECKEDPRESSED,{'U','N','C','H','E','C','K','E','D','P','R','E','S','S','E','D','\0'}},
370 {BP_RADIOBUTTON,CBS_UNCHECKEDDISABLED,{'U','N','C','H','E','C','K','E','D','D','I','S','A','B','L','E','D','\0'}},
371 {BP_RADIOBUTTON,CBS_CHECKEDNORMAL,{'C','H','E','C','K','E','D','N','O','R','M','A','L','\0'}},
372 {BP_RADIOBUTTON,CBS_CHECKEDHOT,{'C','H','E','C','K','E','D','H','O','T','\0'}},
373 {BP_RADIOBUTTON,CBS_CHECKEDPRESSED,{'C','H','E','C','K','E','D','P','R','E','S','S','E','D','\0'}},
374 {BP_RADIOBUTTON,CBS_CHECKEDDISABLED,{'C','H','E','C','K','E','D','D','I','S','A','B','L','E','D','\0'}},
375 {BP_RADIOBUTTON,CBS_MIXEDNORMAL,{'M','I','X','E','D','N','O','R','M','A','L','\0'}},
376 {BP_RADIOBUTTON,CBS_MIXEDHOT,{'M','I','X','E','D','H','O','T','\0'}},
377 {BP_RADIOBUTTON,CBS_MIXEDPRESSED,{'M','I','X','E','D','P','R','E','S','S','E','D','\0'}},
378 {BP_RADIOBUTTON,CBS_MIXEDDISABLED,{'M','I','X','E','D','D','I','S','A','B','L','E','D','\0'}},
379 {BP_GROUPBOX,0,{'G','R','O','U','P','B','O','X','\0'}},
380 {BP_RADIOBUTTON,GBS_NORMAL,{'N','O','R','M','A','L','\0'}},
381 {BP_RADIOBUTTON,GBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
382 {BP_USERBUTTON,0,{'U','S','E','R','B','U','T','T','O','N','\0'}},
383 {0,0,{'\0'}}
384 };
385
386 static const MSSTYLES_CLASS_MAP classClock[] = {
387 {CLP_TIME,0,{'T','I','M','E','\0'}},
388 {CLP_TIME,CLS_NORMAL,{'N','O','R','M','A','L','\0'}},
389 {0,0,{'\0'}}
390 };
391
392 static const MSSTYLES_CLASS_MAP classCombobox[] = {
393 {CP_DROPDOWNBUTTON,0,{'D','R','O','P','D','O','W','N','B','U','T','T','O','N','\0'}},
394 {CP_DROPDOWNBUTTON,CBXS_NORMAL,{'N','O','R','M','A','L','\0'}},
395 {CP_DROPDOWNBUTTON,CBXS_HOT,{'H','O','T','\0'}},
396 {CP_DROPDOWNBUTTON,CBXS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
397 {CP_DROPDOWNBUTTON,CBXS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
398 {0,0,{'\0'}}
399 };
400
401 static const MSSTYLES_CLASS_MAP classEdit[] = {
402 {EP_EDITTEXT,0,{'E','D','I','T','T','E','X','T','\0'}},
403 {EP_EDITTEXT,ETS_NORMAL,{'N','O','R','M','A','L','\0'}},
404 {EP_EDITTEXT,ETS_HOT,{'H','O','T','\0'}},
405 {EP_EDITTEXT,ETS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
406 {EP_EDITTEXT,ETS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
407 {EP_EDITTEXT,ETS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
408 {EP_EDITTEXT,ETS_READONLY,{'R','E','A','D','O','N','L','Y','\0'}},
409 {EP_EDITTEXT,ETS_ASSIST,{'A','S','S','I','S','T','\0'}},
410 {EP_CARET,0,{'C','A','R','E','T','\0'}},
411 {0,0,{'\0'}}
412 };
413
414 static const MSSTYLES_CLASS_MAP classExplorerbar[] = {
415 {EBP_HEADERBACKGROUND,0,{'H','E','A','D','E','R','B','A','C','K','G','R','O','U','N','D','\0'}},
416 {EBP_HEADERCLOSE,0,{'H','E','A','D','E','R','C','L','O','S','E','\0'}},
417 {EBP_HEADERCLOSE,EBHC_NORMAL,{'N','O','R','M','A','L','\0'}},
418 {EBP_HEADERCLOSE,EBHC_HOT,{'H','O','T','\0'}},
419 {EBP_HEADERCLOSE,EBHC_PRESSED,{'P','R','E','S','S','E','D','\0'}},
420 {EBP_HEADERPIN,0,{'H','E','A','D','E','R','P','I','N','\0'}},
421 {EBP_HEADERPIN,EBHP_NORMAL,{'N','O','R','M','A','L','\0'}},
422 {EBP_HEADERPIN,EBHP_HOT,{'H','O','T','\0'}},
423 {EBP_HEADERPIN,EBHP_PRESSED,{'P','R','E','S','S','E','D','\0'}},
424 {EBP_HEADERPIN,EBHP_SELECTEDNORMAL,{'S','E','L','E','C','T','E','D','N','O','R','M','A','L','\0'}},
425 {EBP_HEADERPIN,EBHP_SELECTEDHOT,{'S','E','L','E','C','T','E','D','H','O','T','\0'}},
426 {EBP_HEADERPIN,EBHP_SELECTEDPRESSED,{'S','E','L','E','C','T','E','D','P','R','E','S','S','E','D','\0'}},
427 {EBP_IEBARMENU,0,{'I','E','B','A','R','M','E','N','U','\0'}},
428 {EBP_IEBARMENU,EBM_NORMAL,{'N','O','R','M','A','L','\0'}},
429 {EBP_IEBARMENU,EBM_HOT,{'H','O','T','\0'}},
430 {EBP_IEBARMENU,EBM_PRESSED,{'P','R','E','S','S','E','D','\0'}},
431 {EBP_NORMALGROUPBACKGROUND,0,{'N','O','R','M','A','L','G','R','O','U','P','B','A','C','K','G','R','O','U','N','D','\0'}},
432 {EBP_NORMALGROUPCOLLAPSE,0,{'N','O','R','M','A','L','G','R','O','U','P','C','O','L','L','A','P','S','E','\0'}},
433 {EBP_NORMALGROUPCOLLAPSE,EBNGC_NORMAL,{'N','O','R','M','A','L','\0'}},
434 {EBP_NORMALGROUPCOLLAPSE,EBNGC_HOT,{'H','O','T','\0'}},
435 {EBP_NORMALGROUPCOLLAPSE,EBNGC_PRESSED,{'P','R','E','S','S','E','D','\0'}},
436 {EBP_NORMALGROUPEXPAND,0,{'N','O','R','M','A','L','G','R','O','U','P','E','X','P','A','N','D','\0'}},
437 {EBP_NORMALGROUPEXPAND,EBNGE_NORMAL,{'N','O','R','M','A','L','\0'}},
438 {EBP_NORMALGROUPEXPAND,EBNGE_HOT,{'H','O','T','\0'}},
439 {EBP_NORMALGROUPEXPAND,EBNGE_PRESSED,{'P','R','E','S','S','E','D','\0'}},
440 {EBP_NORMALGROUPHEAD,0,{'N','O','R','M','A','L','G','R','O','U','P','H','E','A','D','\0'}},
441 {EBP_SPECIALGROUPBACKGROUND,0,{'S','P','E','C','I','A','L','G','R','O','U','P','B','A','C','K','G','R','O','U','N','D','\0'}},
442 {EBP_SPECIALGROUPCOLLAPSE,0,{'S','P','E','C','I','A','L','G','R','O','U','P','C','O','L','L','A','P','S','E','\0'}},
443 {EBP_SPECIALGROUPCOLLAPSE,EBSGC_NORMAL,{'N','O','R','M','A','L','\0'}},
444 {EBP_SPECIALGROUPCOLLAPSE,EBSGC_HOT,{'H','O','T','\0'}},
445 {EBP_SPECIALGROUPCOLLAPSE,EBSGC_PRESSED,{'P','R','E','S','S','E','D','\0'}},
446 {EBP_SPECIALGROUPEXPAND,0,{'S','P','E','C','I','A','L','G','R','O','U','P','E','X','P','A','N','D','\0'}},
447 {EBP_SPECIALGROUPEXPAND,EBSGE_NORMAL,{'N','O','R','M','A','L','\0'}},
448 {EBP_SPECIALGROUPEXPAND,EBSGE_HOT,{'H','O','T','\0'}},
449 {EBP_SPECIALGROUPEXPAND,EBSGE_PRESSED,{'P','R','E','S','S','E','D','\0'}},
450 {EBP_SPECIALGROUPHEAD,0,{'S','P','E','C','I','A','L','G','R','O','U','P','H','E','A','D','\0'}},
451 {0,0,{'\0'}}
452 };
453
454 static const MSSTYLES_CLASS_MAP classHeader[] = {
455 {HP_HEADERITEM,0,{'H','E','A','D','E','R','I','T','E','M','\0'}},
456 {HP_HEADERITEM,HIS_NORMAL,{'N','O','R','M','A','L','\0'}},
457 {HP_HEADERITEM,HIS_HOT,{'H','O','T','\0'}},
458 {HP_HEADERITEM,HIS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
459 {HP_HEADERITEMLEFT,0,{'H','E','A','D','E','R','I','T','E','M','L','E','F','T','\0'}},
460 {HP_HEADERITEMLEFT,HILS_NORMAL,{'N','O','R','M','A','L','\0'}},
461 {HP_HEADERITEMLEFT,HILS_HOT,{'H','O','T','\0'}},
462 {HP_HEADERITEMLEFT,HILS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
463 {HP_HEADERITEMRIGHT,0,{'H','E','A','D','E','R','I','T','E','M','R','I','G','H','T','\0'}},
464 {HP_HEADERITEMRIGHT,HIRS_NORMAL,{'N','O','R','M','A','L','\0'}},
465 {HP_HEADERITEMRIGHT,HIRS_HOT,{'H','O','T','\0'}},
466 {HP_HEADERITEMRIGHT,HIRS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
467 {HP_HEADERSORTARROW,0,{'H','E','A','D','E','R','S','O','R','T','A','R','R','O','W','\0'}},
468 {HP_HEADERSORTARROW,HSAS_SORTEDUP,{'S','O','R','T','E','D','U','P','\0'}},
469 {HP_HEADERSORTARROW,HSAS_SORTEDDOWN,{'S','O','R','T','E','D','D','O','W','N','\0'}},
470 {0,0,{'\0'}}
471 };
472
473 static const MSSTYLES_CLASS_MAP classListview[] = {
474 {LVP_LISTITEM,0,{'L','I','S','T','I','T','E','M','\0'}},
475 {LVP_LISTITEM,LIS_NORMAL,{'N','O','R','M','A','L','\0'}},
476 {LVP_LISTITEM,LIS_HOT,{'H','O','T','\0'}},
477 {LVP_LISTITEM,LIS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
478 {LVP_LISTITEM,LIS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
479 {LVP_LISTITEM,LIS_SELECTEDNOTFOCUS,{'S','E','L','E','C','T','E','D','N','O','T','F','O','C','U','S','\0'}},
480 {LVP_LISTGROUP,0,{'L','I','S','T','G','R','O','U','P','\0'}},
481 {LVP_LISTDETAIL,0,{'L','I','S','T','D','E','T','A','I','L','\0'}},
482 {LVP_LISTSORTEDDETAIL,0,{'L','I','S','T','S','O','R','T','E','D','D','E','T','A','I','L','\0'}},
483 {LVP_EMPTYTEXT,0,{'E','M','P','T','Y','T','E','X','T','\0'}},
484 {0,0,{'\0'}}
485 };
486
487 static const MSSTYLES_CLASS_MAP classMenu[] = {
488 {MP_MENUITEM,0,{'M','E','N','U','I','T','E','M','\0'}},
489 {MP_MENUITEM,MS_NORMAL,{'N','O','R','M','A','L','\0'}},
490 {MP_MENUITEM,MS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
491 {MP_MENUITEM,MS_DEMOTED,{'D','E','M','O','T','E','D','\0'}},
492 {MP_MENUDROPDOWN,0,{'M','E','N','U','D','R','O','P','D','O','W','N','\0'}},
493 {MP_MENUDROPDOWN,MS_NORMAL,{'N','O','R','M','A','L','\0'}},
494 {MP_MENUDROPDOWN,MS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
495 {MP_MENUDROPDOWN,MS_DEMOTED,{'D','E','M','O','T','E','D','\0'}},
496 {MP_MENUBARITEM,0,{'M','E','N','U','B','A','R','I','T','E','M','\0'}},
497 {MP_MENUBARITEM,MS_NORMAL,{'N','O','R','M','A','L','\0'}},
498 {MP_MENUBARITEM,MS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
499 {MP_MENUBARITEM,MS_DEMOTED,{'D','E','M','O','T','E','D','\0'}},
500 {MP_MENUBARDROPDOWN,0,{'M','E','N','U','B','A','R','D','R','O','P','D','O','W','N','\0'}},
501 {MP_MENUBARDROPDOWN,MS_NORMAL,{'N','O','R','M','A','L','\0'}},
502 {MP_MENUBARDROPDOWN,MS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
503 {MP_MENUBARDROPDOWN,MS_DEMOTED,{'D','E','M','O','T','E','D','\0'}},
504 {MP_CHEVRON,0,{'C','H','E','V','R','O','N','\0'}},
505 {MP_CHEVRON,MS_NORMAL,{'N','O','R','M','A','L','\0'}},
506 {MP_CHEVRON,MS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
507 {MP_CHEVRON,MS_DEMOTED,{'D','E','M','O','T','E','D','\0'}},
508 {MP_SEPARATOR,0,{'S','E','P','A','R','A','T','O','R','\0'}},
509 {MP_SEPARATOR,MS_NORMAL,{'N','O','R','M','A','L','\0'}},
510 {MP_SEPARATOR,MS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
511 {MP_SEPARATOR,MS_DEMOTED,{'D','E','M','O','T','E','D','\0'}},
512 {0,0,{'\0'}}
513 };
514
515 static const MSSTYLES_CLASS_MAP classMenuband[] = {
516 {MDP_NEWAPPBUTTON,0,{'N','E','W','A','P','P','B','U','T','T','O','N','\0'}},
517 {MDP_NEWAPPBUTTON,MDS_NORMAL,{'N','O','R','M','A','L','\0'}},
518 {MDP_NEWAPPBUTTON,MDS_HOT,{'H','O','T','\0'}},
519 {MDP_NEWAPPBUTTON,MDS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
520 {MDP_NEWAPPBUTTON,MDS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
521 {MDP_NEWAPPBUTTON,MDS_CHECKED,{'C','H','E','C','K','E','D','\0'}},
522 {MDP_NEWAPPBUTTON,MDS_HOTCHECKED,{'H','O','T','C','H','E','C','K','E','D','\0'}},
523 {MDP_SEPERATOR,0,{'S','E','P','E','R','A','T','O','R','\0'}},
524 {0,0,{'\0'}}
525 };
526
527 static const MSSTYLES_CLASS_MAP classPage[] = {
528 {PGRP_UP,0,{'U','P','\0'}},
529 {PGRP_UP,UPS_NORMAL,{'N','O','R','M','A','L','\0'}},
530 {PGRP_UP,UPS_HOT,{'H','O','T','\0'}},
531 {PGRP_UP,UPS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
532 {PGRP_UP,UPS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
533 {PGRP_DOWN,0,{'D','O','W','N','\0'}},
534 {PGRP_DOWN,DNS_NORMAL,{'N','O','R','M','A','L','\0'}},
535 {PGRP_DOWN,DNS_HOT,{'H','O','T','\0'}},
536 {PGRP_DOWN,DNS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
537 {PGRP_DOWN,DNS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
538 {PGRP_UPHORZ,0,{'U','P','H','O','R','Z','\0'}},
539 {PGRP_UPHORZ,UPHZS_NORMAL,{'N','O','R','M','A','L','\0'}},
540 {PGRP_UPHORZ,UPHZS_HOT,{'H','O','T','\0'}},
541 {PGRP_UPHORZ,UPHZS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
542 {PGRP_UPHORZ,UPHZS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
543 {PGRP_DOWNHORZ,0,{'D','O','W','N','H','O','R','Z','\0'}},
544 {PGRP_DOWNHORZ,DNHZS_NORMAL,{'N','O','R','M','A','L','\0'}},
545 {PGRP_DOWNHORZ,DNHZS_HOT,{'H','O','T','\0'}},
546 {PGRP_DOWNHORZ,DNHZS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
547 {PGRP_DOWNHORZ,DNHZS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
548 {0,0,{'\0'}}
549 };
550
551 static const MSSTYLES_CLASS_MAP classProgress[] = {
552 {PP_BAR,0,{'B','A','R','\0'}},
553 {PP_BARVERT,0,{'B','A','R','V','E','R','T','\0'}},
554 {PP_CHUNK,0,{'C','H','U','N','K','\0'}},
555 {PP_CHUNKVERT,0,{'C','H','U','N','K','V','E','R','T','\0'}},
556 {0,0,{'\0'}}
557 };
558
559 static const MSSTYLES_CLASS_MAP classRebar[] = {
560 {RP_GRIPPER,0,{'G','R','I','P','P','E','R','\0'}},
561 {RP_GRIPPERVERT,0,{'G','R','I','P','P','E','R','V','E','R','T','\0'}},
562 {RP_BAND,0,{'B','A','N','D','\0'}},
563 {RP_CHEVRON,0,{'C','H','E','V','R','O','N','\0'}},
564 {RP_CHEVRON,CHEVS_NORMAL,{'N','O','R','M','A','L','\0'}},
565 {RP_CHEVRON,CHEVS_HOT,{'H','O','T','\0'}},
566 {RP_CHEVRON,CHEVS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
567 {RP_CHEVRONVERT,0,{'C','H','E','V','R','O','N','V','E','R','T','\0'}},
568 {0,0,{'\0'}}
569 };
570
571 static const MSSTYLES_CLASS_MAP classScrollbar[] = {
572 {SBP_ARROWBTN,0,{'A','R','R','O','W','B','T','N','\0'}},
573 {SBP_ARROWBTN,ABS_UPNORMAL,{'U','P','N','O','R','M','A','L','\0'}},
574 {SBP_ARROWBTN,ABS_UPHOT,{'U','P','H','O','T','\0'}},
575 {SBP_ARROWBTN,ABS_UPPRESSED,{'U','P','P','R','E','S','S','E','D','\0'}},
576 {SBP_ARROWBTN,ABS_UPDISABLED,{'U','P','D','I','S','A','B','L','E','D','\0'}},
577 {SBP_ARROWBTN,ABS_DOWNNORMAL,{'D','O','W','N','N','O','R','M','A','L','\0'}},
578 {SBP_ARROWBTN,ABS_DOWNHOT,{'D','O','W','N','H','O','T','\0'}},
579 {SBP_ARROWBTN,ABS_DOWNPRESSED,{'D','O','W','N','P','R','E','S','S','E','D','\0'}},
580 {SBP_ARROWBTN,ABS_DOWNDISABLED,{'D','O','W','N','D','I','S','A','B','L','E','D','\0'}},
581 {SBP_ARROWBTN,ABS_LEFTNORMAL,{'L','E','F','T','N','O','R','M','A','L','\0'}},
582 {SBP_ARROWBTN,ABS_LEFTHOT,{'L','E','F','T','H','O','T','\0'}},
583 {SBP_ARROWBTN,ABS_LEFTPRESSED,{'L','E','F','T','P','R','E','S','S','E','D','\0'}},
584 {SBP_ARROWBTN,ABS_LEFTDISABLED,{'L','E','F','T','D','I','S','A','B','L','E','D','\0'}},
585 {SBP_ARROWBTN,ABS_RIGHTNORMAL,{'R','I','G','H','T','N','O','R','M','A','L','\0'}},
586 {SBP_ARROWBTN,ABS_RIGHTHOT,{'R','I','G','H','T','H','O','T','\0'}},
587 {SBP_ARROWBTN,ABS_RIGHTPRESSED,{'R','I','G','H','T','P','R','E','S','S','E','D','\0'}},
588 {SBP_ARROWBTN,ABS_RIGHTDISABLED,{'R','I','G','H','T','D','I','S','A','B','L','E','D','\0'}},
589 {SBP_THUMBBTNHORZ,0,{'T','H','U','M','B','B','T','N','H','O','R','Z','\0'}},
590 {SBP_THUMBBTNHORZ,SCRBS_NORMAL,{'N','O','R','M','A','L','\0'}},
591 {SBP_THUMBBTNHORZ,SCRBS_HOT,{'H','O','T','\0'}},
592 {SBP_THUMBBTNHORZ,SCRBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
593 {SBP_THUMBBTNHORZ,SCRBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
594 {SBP_THUMBBTNVERT,0,{'T','H','U','M','B','B','T','N','V','E','R','T','\0'}},
595 {SBP_THUMBBTNVERT,SCRBS_NORMAL,{'N','O','R','M','A','L','\0'}},
596 {SBP_THUMBBTNVERT,SCRBS_HOT,{'H','O','T','\0'}},
597 {SBP_THUMBBTNVERT,SCRBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
598 {SBP_THUMBBTNVERT,SCRBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
599 {SBP_LOWERTRACKHORZ,0,{'L','O','W','E','R','T','R','A','C','K','H','O','R','Z','\0'}},
600 {SBP_LOWERTRACKHORZ,SCRBS_NORMAL,{'N','O','R','M','A','L','\0'}},
601 {SBP_LOWERTRACKHORZ,SCRBS_HOT,{'H','O','T','\0'}},
602 {SBP_LOWERTRACKHORZ,SCRBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
603 {SBP_LOWERTRACKHORZ,SCRBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
604 {SBP_UPPERTRACKHORZ,0,{'U','P','P','E','R','T','R','A','C','K','H','O','R','Z','\0'}},
605 {SBP_UPPERTRACKHORZ,SCRBS_NORMAL,{'N','O','R','M','A','L','\0'}},
606 {SBP_UPPERTRACKHORZ,SCRBS_HOT,{'H','O','T','\0'}},
607 {SBP_UPPERTRACKHORZ,SCRBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
608 {SBP_UPPERTRACKHORZ,SCRBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
609 {SBP_LOWERTRACKVERT,0,{'L','O','W','E','R','T','R','A','C','K','V','E','R','T','\0'}},
610 {SBP_LOWERTRACKVERT,SCRBS_NORMAL,{'N','O','R','M','A','L','\0'}},
611 {SBP_LOWERTRACKVERT,SCRBS_HOT,{'H','O','T','\0'}},
612 {SBP_LOWERTRACKVERT,SCRBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
613 {SBP_LOWERTRACKVERT,SCRBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
614 {SBP_UPPERTRACKVERT,0,{'U','P','P','E','R','T','R','A','C','K','V','E','R','T','\0'}},
615 {SBP_UPPERTRACKVERT,SCRBS_NORMAL,{'N','O','R','M','A','L','\0'}},
616 {SBP_UPPERTRACKVERT,SCRBS_HOT,{'H','O','T','\0'}},
617 {SBP_UPPERTRACKVERT,SCRBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
618 {SBP_UPPERTRACKVERT,SCRBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
619 {SBP_GRIPPERHORZ,0,{'G','R','I','P','P','E','R','H','O','R','Z','\0'}},
620 {SBP_GRIPPERVERT,0,{'G','R','I','P','P','E','R','V','E','R','T','\0'}},
621 {SBP_SIZEBOX,0,{'S','I','Z','E','B','O','X','\0'}},
622 {SBP_SIZEBOX,SZB_RIGHTALIGN,{'R','I','G','H','T','A','L','I','G','N','\0'}},
623 {SBP_SIZEBOX,SZB_LEFTALIGN,{'L','E','F','T','A','L','I','G','N','\0'}},
624 {0,0,{'\0'}}
625 };
626
627 static const MSSTYLES_CLASS_MAP classSpin[] = {
628 {SPNP_UP,0,{'U','P','\0'}},
629 {SPNP_UP,UPS_NORMAL,{'N','O','R','M','A','L','\0'}},
630 {SPNP_UP,UPS_HOT,{'H','O','T','\0'}},
631 {SPNP_UP,UPS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
632 {SPNP_UP,UPS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
633 {SPNP_DOWN,0,{'D','O','W','N','\0'}},
634 {SPNP_DOWN,DNS_NORMAL,{'N','O','R','M','A','L','\0'}},
635 {SPNP_DOWN,DNS_HOT,{'H','O','T','\0'}},
636 {SPNP_DOWN,DNS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
637 {SPNP_DOWN,DNS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
638 {SPNP_UPHORZ,0,{'U','P','H','O','R','Z','\0'}},
639 {SPNP_UPHORZ,UPHZS_NORMAL,{'N','O','R','M','A','L','\0'}},
640 {SPNP_UPHORZ,UPHZS_HOT,{'H','O','T','\0'}},
641 {SPNP_UPHORZ,UPHZS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
642 {SPNP_UPHORZ,UPHZS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
643 {SPNP_DOWNHORZ,0,{'D','O','W','N','H','O','R','Z','\0'}},
644 {SPNP_DOWNHORZ,DNHZS_NORMAL,{'N','O','R','M','A','L','\0'}},
645 {SPNP_DOWNHORZ,DNHZS_HOT,{'H','O','T','\0'}},
646 {SPNP_DOWNHORZ,DNHZS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
647 {SPNP_DOWNHORZ,DNHZS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
648 {0,0,{'\0'}}
649 };
650
651 static const MSSTYLES_CLASS_MAP classStartpanel[] = {
652 {SPP_USERPANE,0,{'U','S','E','R','P','A','N','E','\0'}},
653 {SPP_MOREPROGRAMS,0,{'M','O','R','E','P','R','O','G','R','A','M','S','\0'}},
654 {SPP_MOREPROGRAMSARROW,0,{'M','O','R','E','P','R','O','G','R','A','M','S','A','R','R','O','W','\0'}},
655 {SPP_MOREPROGRAMSARROW,SPS_NORMAL,{'N','O','R','M','A','L','\0'}},
656 {SPP_MOREPROGRAMSARROW,SPS_HOT,{'H','O','T','\0'}},
657 {SPP_MOREPROGRAMSARROW,SPS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
658 {SPP_PROGLIST,0,{'P','R','O','G','L','I','S','T','\0'}},
659 {SPP_PROGLISTSEPARATOR,0,{'P','R','O','G','L','I','S','T','S','E','P','A','R','A','T','O','R','\0'}},
660 {SPP_PLACESLIST,0,{'P','L','A','C','E','S','L','I','S','T','\0'}},
661 {SPP_PLACESLISTSEPARATOR,0,{'P','L','A','C','E','S','L','I','S','T','S','E','P','A','R','A','T','O','R','\0'}},
662 {SPP_LOGOFF,0,{'L','O','G','O','F','F','\0'}},
663 {SPP_LOGOFFBUTTONS,0,{'L','O','G','O','F','F','B','U','T','T','O','N','S','\0'}},
664 {SPP_LOGOFFBUTTONS,SPLS_NORMAL,{'N','O','R','M','A','L','\0'}},
665 {SPP_LOGOFFBUTTONS,SPLS_HOT,{'H','O','T','\0'}},
666 {SPP_LOGOFFBUTTONS,SPLS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
667 {SPP_USERPICTURE,0,{'U','S','E','R','P','I','C','T','U','R','E','\0'}},
668 {SPP_PREVIEW,0,{'P','R','E','V','I','E','W','\0'}},
669 {0,0,{'\0'}}
670 };
671
672 static const MSSTYLES_CLASS_MAP classStatus[] = {
673 {SP_PANE,0,{'P','A','N','E','\0'}},
674 {SP_GRIPPERPANE,0,{'G','R','I','P','P','E','R','P','A','N','E','\0'}},
675 {SP_GRIPPER,0,{'G','R','I','P','P','E','R','\0'}},
676 {0,0,{'\0'}}
677 };
678
679 static const MSSTYLES_CLASS_MAP classTab[] = {
680 {TABP_TABITEM,0,{'T','A','B','I','T','E','M','\0'}},
681 {TABP_TABITEM,TIS_NORMAL,{'N','O','R','M','A','L','\0'}},
682 {TABP_TABITEM,TIS_HOT,{'H','O','T','\0'}},
683 {TABP_TABITEM,TIS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
684 {TABP_TABITEM,TIS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
685 {TABP_TABITEM,TIS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
686 {TABP_TABITEMLEFTEDGE,0,{'T','A','B','I','T','E','M','L','E','F','T','E','D','G','E','\0'}},
687 {TABP_TABITEMLEFTEDGE,TILES_NORMAL,{'N','O','R','M','A','L','\0'}},
688 {TABP_TABITEMLEFTEDGE,TILES_HOT,{'H','O','T','\0'}},
689 {TABP_TABITEMLEFTEDGE,TILES_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
690 {TABP_TABITEMLEFTEDGE,TILES_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
691 {TABP_TABITEMLEFTEDGE,TILES_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
692 {TABP_TABITEMRIGHTEDGE,0,{'T','A','B','I','T','E','M','R','I','G','H','T','E','D','G','E','\0'}},
693 {TABP_TABITEMRIGHTEDGE,TIRES_NORMAL,{'N','O','R','M','A','L','\0'}},
694 {TABP_TABITEMRIGHTEDGE,TIRES_HOT,{'H','O','T','\0'}},
695 {TABP_TABITEMRIGHTEDGE,TIRES_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
696 {TABP_TABITEMRIGHTEDGE,TIRES_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
697 {TABP_TABITEMRIGHTEDGE,TIRES_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
698 {TABP_TABITEMBOTHEDGE,0,{'T','A','B','I','T','E','M','B','O','T','H','E','D','G','E','\0'}},
699 {TABP_TABITEMBOTHEDGE,TIBES_NORMAL,{'N','O','R','M','A','L','\0'}},
700 {TABP_TABITEMBOTHEDGE,TIBES_HOT,{'H','O','T','\0'}},
701 {TABP_TABITEMBOTHEDGE,TIBES_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
702 {TABP_TABITEMBOTHEDGE,TIBES_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
703 {TABP_TABITEMBOTHEDGE,TIBES_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
704 {TABP_TOPTABITEM,0,{'T','O','P','T','A','B','I','T','E','M','\0'}},
705 {TABP_TOPTABITEM,TTIS_NORMAL,{'N','O','R','M','A','L','\0'}},
706 {TABP_TOPTABITEM,TTIS_HOT,{'H','O','T','\0'}},
707 {TABP_TOPTABITEM,TTIS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
708 {TABP_TOPTABITEM,TTIS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
709 {TABP_TOPTABITEM,TTIS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
710 {TABP_TOPTABITEMLEFTEDGE,0,{'T','O','P','T','A','B','I','T','E','M','L','E','F','T','E','D','G','E','\0'}},
711 {TABP_TOPTABITEMLEFTEDGE,TTILES_NORMAL,{'N','O','R','M','A','L','\0'}},
712 {TABP_TOPTABITEMLEFTEDGE,TTILES_HOT,{'H','O','T','\0'}},
713 {TABP_TOPTABITEMLEFTEDGE,TTILES_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
714 {TABP_TOPTABITEMLEFTEDGE,TTILES_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
715 {TABP_TOPTABITEMLEFTEDGE,TTILES_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
716 {TABP_TOPTABITEMRIGHTEDGE,0,{'T','O','P','T','A','B','I','T','E','M','R','I','G','H','T','E','D','G','E','\0'}},
717 {TABP_TOPTABITEMRIGHTEDGE,TTIRES_NORMAL,{'N','O','R','M','A','L','\0'}},
718 {TABP_TOPTABITEMRIGHTEDGE,TTIRES_HOT,{'H','O','T','\0'}},
719 {TABP_TOPTABITEMRIGHTEDGE,TTIRES_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
720 {TABP_TOPTABITEMRIGHTEDGE,TTIRES_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
721 {TABP_TOPTABITEMRIGHTEDGE,TTIRES_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
722 {TABP_TOPTABITEMBOTHEDGE,0,{'T','O','P','T','A','B','I','T','E','M','B','O','T','H','E','D','G','E','\0'}},
723 {TABP_TOPTABITEMBOTHEDGE,TTIBES_NORMAL,{'N','O','R','M','A','L','\0'}},
724 {TABP_TOPTABITEMBOTHEDGE,TTIBES_HOT,{'H','O','T','\0'}},
725 {TABP_TOPTABITEMBOTHEDGE,TTIBES_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
726 {TABP_TOPTABITEMBOTHEDGE,TTIBES_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
727 {TABP_TOPTABITEMBOTHEDGE,TTIBES_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
728 {TABP_PANE,0,{'P','A','N','E','\0'}},
729 {TABP_BODY,0,{'B','O','D','Y','\0'}},
730 {0,0,{'\0'}}
731 };
732
733 static const MSSTYLES_CLASS_MAP classTaskband[] = {
734 {TDP_GROUPCOUNT,0,{'G','R','O','U','P','C','O','U','N','T','\0'}},
735 {TDP_FLASHBUTTON,0,{'F','L','A','S','H','B','U','T','T','O','N','\0'}},
736 {TDP_FLASHBUTTONGROUPMENU,0,{'F','L','A','S','H','B','U','T','T','O','N','G','R','O','U','P','M','E','N','U','\0'}},
737 {0,0,{'\0'}}
738 };
739
740 static const MSSTYLES_CLASS_MAP classTaskbar[] = {
741 {TBP_BACKGROUNDBOTTOM,0,{'B','A','C','K','G','R','O','U','N','D','B','O','T','T','O','M','\0'}},
742 {TBP_BACKGROUNDRIGHT,0,{'B','A','C','K','G','R','O','U','N','D','R','I','G','H','T','\0'}},
743 {TBP_BACKGROUNDTOP,0,{'B','A','C','K','G','R','O','U','N','D','T','O','P','\0'}},
744 {TBP_BACKGROUNDLEFT,0,{'B','A','C','K','G','R','O','U','N','D','L','E','F','T','\0'}},
745 {TBP_SIZINGBARBOTTOM,0,{'S','I','Z','I','N','G','B','A','R','B','O','T','T','O','M','\0'}},
746 {TBP_SIZINGBARRIGHT,0,{'S','I','Z','I','N','G','B','A','R','R','I','G','H','T','\0'}},
747 {TBP_SIZINGBARTOP,0,{'S','I','Z','I','N','G','B','A','R','T','O','P','\0'}},
748 {TBP_SIZINGBARLEFT,0,{'S','I','Z','I','N','G','B','A','R','L','E','F','T','\0'}},
749 {0,0,{'\0'}}
750 };
751
752 static const MSSTYLES_CLASS_MAP classToolbar[] = {
753 {TP_BUTTON,0,{'B','U','T','T','O','N','\0'}},
754 {TP_BUTTON,TS_NORMAL,{'N','O','R','M','A','L','\0'}},
755 {TP_BUTTON,TS_HOT,{'H','O','T','\0'}},
756 {TP_BUTTON,TS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
757 {TP_BUTTON,TS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
758 {TP_BUTTON,TS_CHECKED,{'C','H','E','C','K','E','D','\0'}},
759 {TP_BUTTON,TS_HOTCHECKED,{'H','O','T','C','H','E','C','K','E','D','\0'}},
760 {TP_DROPDOWNBUTTON,0,{'D','R','O','P','D','O','W','N','B','U','T','T','O','N','\0'}},
761 {TP_DROPDOWNBUTTON,TS_NORMAL,{'N','O','R','M','A','L','\0'}},
762 {TP_DROPDOWNBUTTON,TS_HOT,{'H','O','T','\0'}},
763 {TP_DROPDOWNBUTTON,TS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
764 {TP_DROPDOWNBUTTON,TS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
765 {TP_DROPDOWNBUTTON,TS_CHECKED,{'C','H','E','C','K','E','D','\0'}},
766 {TP_DROPDOWNBUTTON,TS_HOTCHECKED,{'H','O','T','C','H','E','C','K','E','D','\0'}},
767 {TP_SPLITBUTTON,0,{'S','P','L','I','T','B','U','T','T','O','N','\0'}},
768 {TP_SPLITBUTTON,TS_NORMAL,{'N','O','R','M','A','L','\0'}},
769 {TP_SPLITBUTTON,TS_HOT,{'H','O','T','\0'}},
770 {TP_SPLITBUTTON,TS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
771 {TP_SPLITBUTTON,TS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
772 {TP_SPLITBUTTON,TS_CHECKED,{'C','H','E','C','K','E','D','\0'}},
773 {TP_SPLITBUTTON,TS_HOTCHECKED,{'H','O','T','C','H','E','C','K','E','D','\0'}},
774 {TP_SPLITBUTTONDROPDOWN,0,{'S','P','L','I','T','B','U','T','T','O','N','D','R','O','P','D','O','W','N','\0'}},
775 {TP_SPLITBUTTONDROPDOWN,TS_NORMAL,{'N','O','R','M','A','L','\0'}},
776 {TP_SPLITBUTTONDROPDOWN,TS_HOT,{'H','O','T','\0'}},
777 {TP_SPLITBUTTONDROPDOWN,TS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
778 {TP_SPLITBUTTONDROPDOWN,TS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
779 {TP_SPLITBUTTONDROPDOWN,TS_CHECKED,{'C','H','E','C','K','E','D','\0'}},
780 {TP_SPLITBUTTONDROPDOWN,TS_HOTCHECKED,{'H','O','T','C','H','E','C','K','E','D','\0'}},
781 {TP_SEPARATOR,0,{'S','E','P','A','R','A','T','O','R','\0'}},
782 {TP_SEPARATOR,TS_NORMAL,{'N','O','R','M','A','L','\0'}},
783 {TP_SEPARATOR,TS_HOT,{'H','O','T','\0'}},
784 {TP_SEPARATOR,TS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
785 {TP_SEPARATOR,TS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
786 {TP_SEPARATOR,TS_CHECKED,{'C','H','E','C','K','E','D','\0'}},
787 {TP_SEPARATOR,TS_HOTCHECKED,{'H','O','T','C','H','E','C','K','E','D','\0'}},
788 {TP_SEPARATORVERT,0,{'S','E','P','A','R','A','T','O','R','V','E','R','T','\0'}},
789 {TP_SEPARATORVERT,TS_NORMAL,{'N','O','R','M','A','L','\0'}},
790 {TP_SEPARATORVERT,TS_HOT,{'H','O','T','\0'}},
791 {TP_SEPARATORVERT,TS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
792 {TP_SEPARATORVERT,TS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
793 {TP_SEPARATORVERT,TS_CHECKED,{'C','H','E','C','K','E','D','\0'}},
794 {TP_SEPARATORVERT,TS_HOTCHECKED,{'H','O','T','C','H','E','C','K','E','D','\0'}},
795 {0,0,{'\0'}}
796 };
797
798 static const MSSTYLES_CLASS_MAP classTooltip[] = {
799 {TTP_STANDARD,0,{'S','T','A','N','D','A','R','D','\0'}},
800 {TTP_STANDARD,TTSS_NORMAL,{'N','O','R','M','A','L','\0'}},
801 {TTP_STANDARD,TTSS_LINK,{'L','I','N','K','\0'}},
802 {TTP_STANDARDTITLE,0,{'S','T','A','N','D','A','R','D','T','I','T','L','E','\0'}},
803 {TTP_STANDARDTITLE,TTSS_NORMAL,{'N','O','R','M','A','L','\0'}},
804 {TTP_STANDARDTITLE,TTSS_LINK,{'L','I','N','K','\0'}},
805 {TTP_BALLOON,0,{'B','A','L','L','O','O','N','\0'}},
806 {TTP_BALLOON,TTBS_NORMAL,{'N','O','R','M','A','L','\0'}},
807 {TTP_BALLOON,TTBS_LINK,{'L','I','N','K','\0'}},
808 {TTP_BALLOONTITLE,0,{'B','A','L','L','O','O','N','T','I','T','L','E','\0'}},
809 {TTP_BALLOONTITLE,TTBS_NORMAL,{'N','O','R','M','A','L','\0'}},
810 {TTP_BALLOONTITLE,TTBS_LINK,{'L','I','N','K','\0'}},
811 {TTP_CLOSE,0,{'C','L','O','S','E','\0'}},
812 {TTP_CLOSE,TTCS_NORMAL,{'N','O','R','M','A','L','\0'}},
813 {TTP_CLOSE,TTCS_HOT,{'H','O','T','\0'}},
814 {TTP_CLOSE,TTCS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
815 {0,0,{'\0'}}
816 };
817
818 static const MSSTYLES_CLASS_MAP classTrackbar[] = {
819 {TKP_TRACK,0,{'T','R','A','C','K','\0'}},
820 {TKP_TRACK,TRS_NORMAL,{'N','O','R','M','A','L','\0'}},
821 {TKP_TRACKVERT,0,{'T','R','A','C','K','V','E','R','T','\0'}},
822 {TKP_TRACKVERT,TRVS_NORMAL,{'N','O','R','M','A','L','\0'}},
823 {TKP_THUMB,0,{'T','H','U','M','B','\0'}},
824 {TKP_THUMB,TUS_NORMAL,{'N','O','R','M','A','L','\0'}},
825 {TKP_THUMB,TUS_HOT,{'H','O','T','\0'}},
826 {TKP_THUMB,TUS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
827 {TKP_THUMB,TUS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
828 {TKP_THUMB,TUS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
829 {TKP_THUMBBOTTOM,0,{'T','H','U','M','B','B','O','T','T','O','M','\0'}},
830 {TKP_THUMBBOTTOM,TUBS_NORMAL,{'N','O','R','M','A','L','\0'}},
831 {TKP_THUMBBOTTOM,TUBS_HOT,{'H','O','T','\0'}},
832 {TKP_THUMBBOTTOM,TUBS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
833 {TKP_THUMBBOTTOM,TUBS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
834 {TKP_THUMBBOTTOM,TUBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
835 {TKP_THUMBTOP,0,{'T','H','U','M','B','T','O','P','\0'}},
836 {TKP_THUMBTOP,TUTS_NORMAL,{'N','O','R','M','A','L','\0'}},
837 {TKP_THUMBTOP,TUTS_HOT,{'H','O','T','\0'}},
838 {TKP_THUMBTOP,TUTS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
839 {TKP_THUMBTOP,TUTS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
840 {TKP_THUMBTOP,TUTS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
841 {TKP_THUMBVERT,0,{'T','H','U','M','B','V','E','R','T','\0'}},
842 {TKP_THUMBVERT,TUVS_NORMAL,{'N','O','R','M','A','L','\0'}},
843 {TKP_THUMBVERT,TUVS_HOT,{'H','O','T','\0'}},
844 {TKP_THUMBVERT,TUVS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
845 {TKP_THUMBVERT,TUVS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
846 {TKP_THUMBVERT,TUVS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
847 {TKP_THUMBLEFT,0,{'T','H','U','M','B','L','E','F','T','\0'}},
848 {TKP_THUMBLEFT,TUVLS_NORMAL,{'N','O','R','M','A','L','\0'}},
849 {TKP_THUMBLEFT,TUVLS_HOT,{'H','O','T','\0'}},
850 {TKP_THUMBLEFT,TUVLS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
851 {TKP_THUMBLEFT,TUVLS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
852 {TKP_THUMBLEFT,TUVLS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
853 {TKP_THUMBRIGHT,0,{'T','H','U','M','B','R','I','G','H','T','\0'}},
854 {TKP_THUMBRIGHT,TUVRS_NORMAL,{'N','O','R','M','A','L','\0'}},
855 {TKP_THUMBRIGHT,TUVRS_HOT,{'H','O','T','\0'}},
856 {TKP_THUMBRIGHT,TUVRS_PRESSED,{'P','R','E','S','S','E','D','\0'}},
857 {TKP_THUMBRIGHT,TUVRS_FOCUSED,{'F','O','C','U','S','E','D','\0'}},
858 {TKP_THUMBRIGHT,TUVRS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
859 {TKP_TICS,0,{'T','I','C','S','\0'}},
860 {TKP_TICS,TSS_NORMAL,{'N','O','R','M','A','L','\0'}},
861 {TKP_TICSVERT,0,{'T','I','C','S','V','E','R','T','\0'}},
862 {TKP_TICSVERT,TSVS_NORMAL,{'N','O','R','M','A','L','\0'}},
863 {0,0,{'\0'}}
864 };
865
866 static const MSSTYLES_CLASS_MAP classTraynotify[] = {
867 {TNP_BACKGROUND,0,{'B','A','C','K','G','R','O','U','N','D','\0'}},
868 {TNP_ANIMBACKGROUND,0,{'A','N','I','M','B','A','C','K','G','R','O','U','N','D','\0'}},
869 {0,0,{'\0'}}
870 };
871
872 static const MSSTYLES_CLASS_MAP classTreeview[] = {
873 {TVP_TREEITEM,0,{'T','R','E','E','I','T','E','M','\0'}},
874 {TVP_TREEITEM,TREIS_NORMAL,{'N','O','R','M','A','L','\0'}},
875 {TVP_TREEITEM,TREIS_HOT,{'H','O','T','\0'}},
876 {TVP_TREEITEM,TREIS_SELECTED,{'S','E','L','E','C','T','E','D','\0'}},
877 {TVP_TREEITEM,TREIS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
878 {TVP_TREEITEM,TREIS_SELECTEDNOTFOCUS,{'S','E','L','E','C','T','E','D','N','O','T','F','O','C','U','S','\0'}},
879 {TVP_GLYPH,0,{'G','L','Y','P','H','\0'}},
880 {TVP_GLYPH,GLPS_CLOSED,{'C','L','O','S','E','D','\0'}},
881 {TVP_GLYPH,GLPS_OPENED,{'O','P','E','N','E','D','\0'}},
882 {TVP_BRANCH,0,{'B','R','A','N','C','H','\0'}},
883 {0,0,{'\0'}}
884 };
885
886 static const MSSTYLES_CLASS_MAP classWindow[] = {
887 {WP_CAPTION,0,{'C','A','P','T','I','O','N','\0'}},
888 {WP_CAPTION,CS_ACTIVE,{'A','C','T','I','V','E','\0'}},
889 {WP_CAPTION,CS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
890 {WP_CAPTION,CS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
891 {WP_SMALLCAPTION,0,{'S','M','A','L','L','C','A','P','T','I','O','N','\0'}},
892 {WP_SMALLCAPTION,CS_ACTIVE,{'A','C','T','I','V','E','\0'}},
893 {WP_SMALLCAPTION,CS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
894 {WP_SMALLCAPTION,CS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
895 {WP_MINCAPTION,0,{'M','I','N','C','A','P','T','I','O','N','\0'}},
896 {WP_MINCAPTION,MNCS_ACTIVE,{'A','C','T','I','V','E','\0'}},
897 {WP_MINCAPTION,MNCS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
898 {WP_MINCAPTION,MNCS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
899 {WP_SMALLMINCAPTION,0,{'S','M','A','L','L','M','I','N','C','A','P','T','I','O','N','\0'}},
900 {WP_SMALLMINCAPTION,MNCS_ACTIVE,{'A','C','T','I','V','E','\0'}},
901 {WP_SMALLMINCAPTION,MNCS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
902 {WP_SMALLMINCAPTION,MNCS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
903 {WP_MAXCAPTION,0,{'M','A','X','C','A','P','T','I','O','N','\0'}},
904 {WP_MAXCAPTION,MXCS_ACTIVE,{'A','C','T','I','V','E','\0'}},
905 {WP_MAXCAPTION,MXCS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
906 {WP_MAXCAPTION,MXCS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
907 {WP_SMALLMAXCAPTION,0,{'S','M','A','L','L','M','A','X','C','A','P','T','I','O','N','\0'}},
908 {WP_SMALLMAXCAPTION,MXCS_ACTIVE,{'A','C','T','I','V','E','\0'}},
909 {WP_SMALLMAXCAPTION,MXCS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
910 {WP_SMALLMAXCAPTION,MXCS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
911 {WP_FRAMELEFT,0,{'F','R','A','M','E','L','E','F','T','\0'}},
912 {WP_FRAMELEFT,FS_ACTIVE,{'A','C','T','I','V','E','\0'}},
913 {WP_FRAMELEFT,FS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
914 {WP_FRAMERIGHT,0,{'F','R','A','M','E','R','I','G','H','T','\0'}},
915 {WP_FRAMERIGHT,FS_ACTIVE,{'A','C','T','I','V','E','\0'}},
916 {WP_FRAMERIGHT,FS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
917 {WP_FRAMEBOTTOM,0,{'F','R','A','M','E','B','O','T','T','O','M','\0'}},
918 {WP_FRAMEBOTTOM,FS_ACTIVE,{'A','C','T','I','V','E','\0'}},
919 {WP_FRAMEBOTTOM,FS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
920 {WP_SMALLFRAMELEFT,0,{'S','M','A','L','L','F','R','A','M','E','L','E','F','T','\0'}},
921 {WP_SMALLFRAMELEFT,FS_ACTIVE,{'A','C','T','I','V','E','\0'}},
922 {WP_SMALLFRAMELEFT,FS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
923 {WP_SMALLFRAMERIGHT,0,{'S','M','A','L','L','F','R','A','M','E','R','I','G','H','T','\0'}},
924 {WP_SMALLFRAMERIGHT,FS_ACTIVE,{'A','C','T','I','V','E','\0'}},
925 {WP_SMALLFRAMERIGHT,FS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
926 {WP_SMALLFRAMEBOTTOM,0,{'S','M','A','L','L','F','R','A','M','E','B','O','T','T','O','M','\0'}},
927 {WP_SMALLFRAMEBOTTOM,FS_ACTIVE,{'A','C','T','I','V','E','\0'}},
928 {WP_SMALLFRAMEBOTTOM,FS_INACTIVE,{'I','N','A','C','T','I','V','E','\0'}},
929 {WP_SYSBUTTON,0,{'S','Y','S','B','U','T','T','O','N','\0'}},
930 {WP_SYSBUTTON,SBS_NORMAL,{'N','O','R','M','A','L','\0'}},
931 {WP_SYSBUTTON,SBS_HOT,{'H','O','T','\0'}},
932 {WP_SYSBUTTON,SBS_PUSHED,{'P','U','S','H','E','D','\0'}},
933 {WP_SYSBUTTON,SBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
934 {WP_MDISYSBUTTON,0,{'M','D','I','S','Y','S','B','U','T','T','O','N','\0'}},
935 {WP_MDISYSBUTTON,SBS_NORMAL,{'N','O','R','M','A','L','\0'}},
936 {WP_MDISYSBUTTON,SBS_HOT,{'H','O','T','\0'}},
937 {WP_MDISYSBUTTON,SBS_PUSHED,{'P','U','S','H','E','D','\0'}},
938 {WP_MDISYSBUTTON,SBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
939 {WP_MINBUTTON,0,{'M','I','N','B','U','T','T','O','N','\0'}},
940 {WP_MINBUTTON,MINBS_NORMAL,{'N','O','R','M','A','L','\0'}},
941 {WP_MINBUTTON,MINBS_HOT,{'H','O','T','\0'}},
942 {WP_MINBUTTON,MINBS_PUSHED,{'P','U','S','H','E','D','\0'}},
943 {WP_MINBUTTON,MINBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
944 {WP_MDIMINBUTTON,0,{'M','D','I','M','I','N','B','U','T','T','O','N','\0'}},
945 {WP_MDIMINBUTTON,MINBS_NORMAL,{'N','O','R','M','A','L','\0'}},
946 {WP_MDIMINBUTTON,MINBS_HOT,{'H','O','T','\0'}},
947 {WP_MDIMINBUTTON,MINBS_PUSHED,{'P','U','S','H','E','D','\0'}},
948 {WP_MDIMINBUTTON,MINBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
949 {WP_MAXBUTTON,0,{'M','A','X','B','U','T','T','O','N','\0'}},
950 {WP_MAXBUTTON,MAXBS_NORMAL,{'N','O','R','M','A','L','\0'}},
951 {WP_MAXBUTTON,MAXBS_HOT,{'H','O','T','\0'}},
952 {WP_MAXBUTTON,MAXBS_PUSHED,{'P','U','S','H','E','D','\0'}},
953 {WP_MAXBUTTON,MAXBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
954 {WP_CLOSEBUTTON,0,{'C','L','O','S','E','B','U','T','T','O','N','\0'}},
955 {WP_CLOSEBUTTON,CBS_NORMAL,{'N','O','R','M','A','L','\0'}},
956 {WP_CLOSEBUTTON,CBS_HOT,{'H','O','T','\0'}},
957 {WP_CLOSEBUTTON,CBS_PUSHED,{'P','U','S','H','E','D','\0'}},
958 {WP_CLOSEBUTTON,CBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
959 {WP_SMALLCLOSEBUTTON,0,{'S','M','A','L','L','C','L','O','S','E','B','U','T','T','O','N','\0'}},
960 {WP_SMALLCLOSEBUTTON,CBS_NORMAL,{'N','O','R','M','A','L','\0'}},
961 {WP_SMALLCLOSEBUTTON,CBS_HOT,{'H','O','T','\0'}},
962 {WP_SMALLCLOSEBUTTON,CBS_PUSHED,{'P','U','S','H','E','D','\0'}},
963 {WP_SMALLCLOSEBUTTON,CBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
964 {WP_MDICLOSEBUTTON,0,{'M','D','I','C','L','O','S','E','B','U','T','T','O','N','\0'}},
965 {WP_MDICLOSEBUTTON,CBS_NORMAL,{'N','O','R','M','A','L','\0'}},
966 {WP_MDICLOSEBUTTON,CBS_HOT,{'H','O','T','\0'}},
967 {WP_MDICLOSEBUTTON,CBS_PUSHED,{'P','U','S','H','E','D','\0'}},
968 {WP_MDICLOSEBUTTON,CBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
969 {WP_RESTOREBUTTON,0,{'R','E','S','T','O','R','E','B','U','T','T','O','N','\0'}},
970 {WP_RESTOREBUTTON,RBS_NORMAL,{'N','O','R','M','A','L','\0'}},
971 {WP_RESTOREBUTTON,RBS_HOT,{'H','O','T','\0'}},
972 {WP_RESTOREBUTTON,RBS_PUSHED,{'P','U','S','H','E','D','\0'}},
973 {WP_RESTOREBUTTON,RBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
974 {WP_MDIRESTOREBUTTON,0,{'M','D','I','R','E','S','T','O','R','E','B','U','T','T','O','N','\0'}},
975 {WP_MDIRESTOREBUTTON,RBS_NORMAL,{'N','O','R','M','A','L','\0'}},
976 {WP_MDIRESTOREBUTTON,RBS_HOT,{'H','O','T','\0'}},
977 {WP_MDIRESTOREBUTTON,RBS_PUSHED,{'P','U','S','H','E','D','\0'}},
978 {WP_MDIRESTOREBUTTON,RBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
979 {WP_HELPBUTTON,0,{'H','E','L','P','B','U','T','T','O','N','\0'}},
980 {WP_HELPBUTTON,HBS_NORMAL,{'N','O','R','M','A','L','\0'}},
981 {WP_HELPBUTTON,HBS_HOT,{'H','O','T','\0'}},
982 {WP_HELPBUTTON,HBS_PUSHED,{'P','U','S','H','E','D','\0'}},
983 {WP_HELPBUTTON,HBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
984 {WP_MDIHELPBUTTON,0,{'M','D','I','H','E','L','P','B','U','T','T','O','N','\0'}},
985 {WP_MDIHELPBUTTON,HBS_NORMAL,{'N','O','R','M','A','L','\0'}},
986 {WP_MDIHELPBUTTON,HBS_HOT,{'H','O','T','\0'}},
987 {WP_MDIHELPBUTTON,HBS_PUSHED,{'P','U','S','H','E','D','\0'}},
988 {WP_MDIHELPBUTTON,HBS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
989 {WP_HORZSCROLL,0,{'H','O','R','Z','S','C','R','O','L','L','\0'}},
990 {WP_HORZSCROLL,HSS_NORMAL,{'N','O','R','M','A','L','\0'}},
991 {WP_HORZSCROLL,HSS_HOT,{'H','O','T','\0'}},
992 {WP_HORZSCROLL,HSS_PUSHED,{'P','U','S','H','E','D','\0'}},
993 {WP_HORZSCROLL,HSS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
994 {WP_HORZTHUMB,0,{'H','O','R','Z','T','H','U','M','B','\0'}},
995 {WP_HORZTHUMB,HTS_NORMAL,{'N','O','R','M','A','L','\0'}},
996 {WP_HORZTHUMB,HTS_HOT,{'H','O','T','\0'}},
997 {WP_HORZTHUMB,HTS_PUSHED,{'P','U','S','H','E','D','\0'}},
998 {WP_HORZTHUMB,HTS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
999 {WP_VERTSCROLL,0,{'V','E','R','T','S','C','R','O','L','L','\0'}},
1000 {WP_VERTSCROLL,VSS_NORMAL,{'N','O','R','M','A','L','\0'}},
1001 {WP_VERTSCROLL,VSS_HOT,{'H','O','T','\0'}},
1002 {WP_VERTSCROLL,VSS_PUSHED,{'P','U','S','H','E','D','\0'}},
1003 {WP_VERTSCROLL,VSS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
1004 {WP_VERTTHUMB,0,{'V','E','R','T','T','H','U','M','B','\0'}},
1005 {WP_VERTTHUMB,VTS_NORMAL,{'N','O','R','M','A','L','\0'}},
1006 {WP_VERTTHUMB,VTS_HOT,{'H','O','T','\0'}},
1007 {WP_VERTTHUMB,VTS_PUSHED,{'P','U','S','H','E','D','\0'}},
1008 {WP_VERTTHUMB,VTS_DISABLED,{'D','I','S','A','B','L','E','D','\0'}},
1009 {WP_DIALOG,0,{'D','I','A','L','O','G','\0'}},
1010 {WP_CAPTIONSIZINGTEMPLATE,0,{'C','A','P','T','I','O','N','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1011 {WP_SMALLCAPTIONSIZINGTEMPLATE,0,{'S','M','A','L','L','C','A','P','T','I','O','N','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1012 {WP_FRAMELEFTSIZINGTEMPLATE,0,{'F','R','A','M','E','L','E','F','T','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1013 {WP_SMALLFRAMELEFTSIZINGTEMPLATE,0,{'S','M','A','L','L','F','R','A','M','E','L','E','F','T','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1014 {WP_FRAMERIGHTSIZINGTEMPLATE,0,{'F','R','A','M','E','R','I','G','H','T','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1015 {WP_SMALLFRAMERIGHTSIZINGTEMPLATE,0,{'S','M','A','L','L','F','R','A','M','E','R','I','G','H','T','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1016 {WP_FRAMEBOTTOMSIZINGTEMPLATE,0,{'F','R','A','M','E','B','O','T','T','O','M','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1017 {WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE,0,{'S','M','A','L','L','F','R','A','M','E','B','O','T','T','O','M','S','I','Z','I','N','G','T','E','M','P','L','A','T','E','\0'}},
1018 {0,0,{'\0'}}
1019 };
1020
1021 /* Map class names to part/state maps */
1022 static const MSSTYLES_CLASS_NAME mapClass[] = {
1023 {classGlobals, {'G','L','O','B','A','L','S','\0'}},
1024 {classButton, {'B','U','T','T','O','N','\0'}},
1025 {classClock, {'C','L','O','C','K','\0'}},
1026 {classCombobox, {'C','O','M','B','O','B','O','X','\0'}},
1027 {classEdit, {'E','D','I','T','\0'}},
1028 {classExplorerbar, {'E','X','P','L','O','R','E','R','B','A','R','\0'}},
1029 {classHeader, {'H','E','A','D','E','R','\0'}},
1030 {classListview, {'L','I','S','T','V','I','E','W','\0'}},
1031 {classMenu, {'M','E','N','U','\0'}},
1032 {classMenuband, {'M','E','N','U','B','A','N','D','\0'}},
1033 {classPage, {'P','A','G','E','\0'}},
1034 {classProgress, {'P','R','O','G','R','E','S','S','\0'}},
1035 {classRebar, {'R','E','B','A','R','\0'}},
1036 {classScrollbar, {'S','C','R','O','L','L','B','A','R','\0'}},
1037 {classSpin, {'S','P','I','N','\0'}},
1038 {classStartpanel, {'S','T','A','R','T','P','A','N','E','L','\0'}},
1039 {classStatus, {'S','T','A','T','U','S','\0'}},
1040 {classTab, {'T','A','B','\0'}},
1041 {classTaskband, {'T','A','S','K','B','A','N','D','\0'}},
1042 {classTaskbar, {'T','A','S','K','B','A','R','\0'}},
1043 {classToolbar, {'T','O','O','L','B','A','R','\0'}},
1044 {classTooltip, {'T','O','O','L','T','I','P','\0'}},
1045 {classTrackbar, {'T','R','A','C','K','B','A','R','\0'}},
1046 {classTraynotify, {'T','R','A','Y','N','O','T','I','F','Y','\0'}},
1047 {classTreeview, {'T','R','E','E','V','I','E','W','\0'}},
1048 {classWindow, {'W','I','N','D','O','W','\0'}}
1049 };
1050
1051 BOOL MSSTYLES_LookupPartState(LPCWSTR pszClass, LPCWSTR pszPart, LPCWSTR pszState, int *iPartId, int *iStateId)
1052 {
1053 unsigned int i;
1054 const MSSTYLES_CLASS_MAP *map;
1055
1056 *iPartId = 0;
1057 *iStateId = 0;
1058 for(i=0; i<sizeof(mapClass)/sizeof(mapClass[0]); i++) {
1059 if(!lstrcmpiW(mapClass[i].pszClass, pszClass)) {
1060 map = mapClass[i].lpMap;
1061 if(pszPart) {
1062 do {
1063 if(map->dwStateID == 0 && !lstrcmpiW(map->szName, pszPart)) {
1064 *iPartId = map->dwPartID;
1065 break;
1066 }
1067 } while(*((++map)->szName));
1068 }
1069 if(pszState) {
1070 if(pszPart && *iPartId == 0) {
1071 break;
1072 }
1073 do {
1074 if(pszPart) {
1075 if(map->dwPartID == *iPartId && !lstrcmpiW(map->szName, pszState)) {
1076 *iStateId = map->dwStateID;
1077 break;
1078 }
1079 }
1080 else {
1081 if(!lstrcmpiW(map->szName, pszState)) {
1082 *iStateId = map->dwStateID;
1083 break;
1084 }
1085 }
1086 } while(*((++map)->szName));
1087 }
1088 break;
1089 }
1090 }
1091 if(pszPart && *iPartId == 0) {
1092 return FALSE;
1093 }
1094 if(pszState && *iStateId == 0) {
1095 return FALSE;
1096 }
1097 return TRUE;
1098 }
1099
1100 /**********************************************************************
1101 * MSSTYLES_LookupProperty
1102 *
1103 * Find a property ID from name
1104 *
1105 * PARAMS
1106 * pszPropertyName Name of property to lookup
1107 * dwPrimitive Location to store primitive type of property
1108 * dwId Location to store ID of property
1109 *
1110 * RETURNS
1111 * FALSE if value is not found, TRUE otherwise
1112 */
1113 BOOL MSSTYLES_LookupProperty(LPCWSTR pszPropertyName, int *dwPrimitive, int *dwId)
1114 {
1115 DWORD item = 0;
1116 do {
1117 if(!lstrcmpiW(mapProperty[item].szPropertyName, pszPropertyName)) {
1118 if(dwPrimitive) *dwPrimitive = mapProperty[item].dwPrimitiveType;
1119 if(dwId) *dwId = mapProperty[item].dwPropertyID;
1120 return TRUE;
1121 }
1122 } while(*mapProperty[++item].szPropertyName);
1123 return FALSE;
1124 }
1125
1126 /**********************************************************************
1127 * MSSTYLES_LookupEnum
1128 *
1129 * Lookup the value for an enumeration
1130 *
1131 * PARAMS
1132 * pszValueName Value name to lookup
1133 * dwEnum Enumeration property ID to search
1134 * dwValue Location to store value
1135 *
1136 * RETURNS
1137 * FALSE if value is not found, TRUE otherwise
1138 */
1139 BOOL MSSTYLES_LookupEnum(LPCWSTR pszValueName, int dwEnum, int *dwValue)
1140 {
1141 DWORD item = 0;
1142 /* Locate the enum block */
1143 while(*mapEnum[item].szValueName && mapEnum[item].dwEnum != dwEnum) item++;
1144 /* Now find the value in that block */
1145 while(*mapEnum[item].szValueName && mapEnum[item].dwEnum == dwEnum) {
1146 if(!lstrcmpiW(mapEnum[item].szValueName, pszValueName)) {
1147 if(dwValue) *dwValue = mapEnum[item].dwValue;
1148 return TRUE;
1149 }
1150 item++;
1151 }
1152 return FALSE;
1153 }