This is a ton of infrastructure for my future patches, and a full implementation of GetThemeDocumentationProperty which I primarilly used to test my INI file processing, and its now possible to set the current theme through the API..not that its much use to do that yet
? dlls/uxtheme/msstyles.rc ? dlls/uxtheme/uxini.c Index: dlls/uxtheme/.cvsignore =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/.cvsignore,v retrieving revision 1.2 diff -u -r1.2 .cvsignore --- dlls/uxtheme/.cvsignore 4 Dec 2003 20:55:30 -0000 1.2 +++ dlls/uxtheme/.cvsignore 11 Jan 2004 01:24:22 -0000 @@ -3,3 +3,4 @@ uxtheme.spec.c uxtheme.spec.def version.res +msstyles.res Index: dlls/uxtheme/Makefile.in =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/Makefile.in,v retrieving revision 1.4 diff -u -r1.4 Makefile.in --- dlls/uxtheme/Makefile.in 8 Dec 2003 22:45:26 -0000 1.4 +++ dlls/uxtheme/Makefile.in 11 Jan 2004 01:24:22 -0000 @@ -12,9 +12,11 @@ metric.c \ msstyles.c \ property.c \ - system.c + system.c \ + uxini.c -RC_SRCS = version.rc +RC_SRCS = version.rc \ + msstyles.rc @MAKE_DLL_RULES@ Index: dlls/uxtheme/main.c =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/main.c,v retrieving revision 1.2 diff -u -r1.2 main.c --- dlls/uxtheme/main.c 4 Dec 2003 20:55:30 -0000 1.2 +++ dlls/uxtheme/main.c 11 Jan 2004 01:24:22 -0000 @@ -39,7 +39,7 @@ switch(fdwReason) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hInstDLL); - UXTHEME_InitSystem(); + UXTHEME_InitSystem(hInstDLL); break; case DLL_PROCESS_DETACH: break; Index: dlls/uxtheme/msstyles.c =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/msstyles.c,v retrieving revision 1.1 diff -u -r1.1 msstyles.c --- dlls/uxtheme/msstyles.c 8 Dec 2003 22:45:26 -0000 1.1 +++ dlls/uxtheme/msstyles.c 11 Jan 2004 01:24:22 -0000 @@ -35,8 +35,139 @@ WINE_DEFAULT_DEBUG_CHANNEL(uxtheme); +/*********************************************************************** + * Defines and global variables + */ + +extern HINSTANCE hDllInst; + #define MSSTYLES_VERSION 0x0003 +WCHAR szThemesIniResource[] = { + 't','h','e','m','e','s','_','i','n','i','\0' +}; + +typedef struct _MSSTYLES_MAP { + WORD dwValue1; + WORD dwValue2; + LPCWSTR pszName; +} MSSTYLES_MAP, *PMSSTYLES_MAP; + +static PMSSTYLES_MAP propMap; +static PMSSTYLES_MAP enumMap; + +PTHEME_FILE tfActiveTheme = NULL; + +/***********************************************************************/ + +/********************************************************************** + * MSSTYLES_LoadMap + * + * Load a name/value map from resources + * Each name has 2 values + * + * PARAMS + * pszName Resource name to load + */ +PMSSTYLES_MAP MSSTYLES_LoadMap(LPWSTR pszName) +{ + HRSRC hrsc; + LPCSTR lmem = NULL; + LPCSTR lmemstart = NULL; + WORD eid; + DWORD count; + PMSSTYLES_MAP ret; + + hrsc = FindResourceW(hDllInst, pszName, MAKEINTRESOURCEW(RT_RCDATA)); + if(hrsc) lmem = LoadResource(hDllInst, hrsc); + if(!lmem) + return NULL; + lmemstart = lmem; + /* Count entries */ + count = 0; + do { + eid = *(LPWORD)lmem; + lmem += sizeof(WORD) + sizeof(WORD); + lmem += (lstrlenW((LPCWSTR)lmem)+1) * sizeof(WCHAR); + count++; + } while(eid != 0); + ret = HeapAlloc(GetProcessHeap(), 0, (count+1) * sizeof(MSSTYLES_MAP)); + count = 0; + lmem = lmemstart; + do { + eid = *(LPWORD)lmem; + ret[count].dwValue1 = eid; + lmem += sizeof(WORD); + ret[count].dwValue2 = *(LPWORD)lmem; + lmem += sizeof(WORD); + ret[count].pszName = (LPCWSTR)lmem; + lmem += (lstrlenW((LPCWSTR)lmem)+1) * sizeof(WCHAR); + count++; + } while(eid != 0); + ret[count].dwValue1 = 0; + ret[count].dwValue2 = 0; + ret[count].pszName = NULL; + + return ret; +} + +/********************************************************************** + * MSSTYLES_FindInMap + * + * Find value associated with a name in a map + * + * PARAMS + * pmMap Map to search + * pszName Name to find + * dwValue1 First value assocated with name + * dwValue2 Second value associated with name + * + * RETURNS + * FALSE if value is not found, TRUE otherwise + * + * NOTES + * FIXME: should use a hash table for this + * This isnt very efficient, as a map will be queried many many times, altho only during + * initialization, so will not affect the app after its running + */ +BOOL MSSTYLES_FindInMap(PMSSTYLES_MAP pmMap, LPCWSTR pszName, DWORD *dwValue1, DWORD *dwValue2) +{ + DWORD item = 0; + do { + if(!lstrcmpiW(pmMap[item].pszName, pszName)) { + if(dwValue1) *dwValue1 = pmMap[item].dwValue1; + if(dwValue2) *dwValue2 = pmMap[item].dwValue2; + return TRUE; + } + } while(pmMap[++item].pszName); + return FALSE; +} + +/********************************************************************** + * MSSTYLES_InitMSStyles + */ +void MSSTYLES_InitMSStyles() +{ + WCHAR map_property[] = {'M','A','P','_','P','R','O','P','E','R','T','Y','\0'}; + WCHAR map_enum[] = {'M','A','P','_','E','N','U','M','\0'}; + + propMap = MSSTYLES_LoadMap(map_property); + enumMap = MSSTYLES_LoadMap(map_enum); + + if(!propMap) ERR("Resource MAP_PROPERTY not found\n"); + if(!enumMap) ERR("Resource MAP_ENUM not found\n"); +} + +/********************************************************************** + * MSSTYLES_LookupProperty + * + * Find a property ID from name + */ +BOOL MSSTYLES_LookupProperty(LPCWSTR pszPropertyName, DWORD *dwPrimitive, DWORD *dwId) +{ + return MSSTYLES_FindInMap(propMap, pszPropertyName, dwPrimitive, dwId); +} + /********************************************************************** * MSSTYLES_OpenThemeFile * @@ -144,12 +275,13 @@ goto invalid_theme; } - *tf = HeapAlloc(GetProcessHeap(), 0, sizeof(THEME_FILE)); + *tf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(THEME_FILE)); (*tf)->hTheme = hTheme; (*tf)->pszAvailColors = pszColors; (*tf)->pszAvailSizes = pszSizes; (*tf)->pszSelectedColor = pszSelectedColor; (*tf)->pszSelectedSize = pszSelectedSize; + (*tf)->dwRefCount = 1; return S_OK; invalid_theme: @@ -166,7 +298,56 @@ void MSSTYLES_CloseThemeFile(PTHEME_FILE tf) { if(tf) { - if(tf->hTheme) FreeLibrary(tf->hTheme); - HeapFree(GetProcessHeap(), 0, tf); + tf->dwRefCount--; + if(!tf->dwRefCount) { + if(tf->hTheme) FreeLibrary(tf->hTheme); + HeapFree(GetProcessHeap(), 0, tf); + } } +} + +/*********************************************************************** + * MSSTYLES_SetActiveTheme + * + * Set the current active theme + */ +HRESULT MSSTYLES_SetActiveTheme(PTHEME_FILE tf) +{ + if(tfActiveTheme) + MSSTYLES_CloseThemeFile(tfActiveTheme); + tfActiveTheme = tf; + tfActiveTheme->dwRefCount++; + FIXME("Process theme resources\n"); + return S_OK; +} + +/*********************************************************************** + * MSSTYLES_GetThemeIni + * + * Retrieves themes.ini from a theme + */ +PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf) +{ + return UXINI_LoadINI(tf, szThemesIniResource); +} + +/*********************************************************************** + * MSSTYLES_OpenThemeClass + * + * Open a theme class + * + * PARAMS + * tf Previously opened theme file + * pszClassList List of requested classes, semicolon delimited + */ +PTHEME_CLASS MSSTYLES_OpenThemeClass(LPCWSTR pszClassList) +{ + FIXME("%s\n", debugstr_w(pszClassList)); + return NULL; +} + +HRESULT MSSTYLES_CloseThemeClass(PTHEME_CLASS tc) +{ + FIXME("%p\n", tc); + return S_OK; } Index: dlls/uxtheme/msstyles.h =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/msstyles.h,v retrieving revision 1.1 diff -u -r1.1 msstyles.h --- dlls/uxtheme/msstyles.h 8 Dec 2003 22:45:26 -0000 1.1 +++ dlls/uxtheme/msstyles.h 11 Jan 2004 01:24:22 -0000 @@ -22,6 +22,7 @@ #define __WINE_MSSTYLES_H typedef struct _THEME_FILE { + DWORD dwRefCount; HMODULE hTheme; LPWSTR pszAvailColors; LPWSTR pszAvailSizes; @@ -30,8 +31,29 @@ LPWSTR pszSelectedSize; } THEME_FILE, *PTHEME_FILE; +typedef struct _UXINI_FILE { + LPCWSTR lpIni; + LPCWSTR lpCurLoc; + LPCWSTR lpEnd; +} UXINI_FILE, *PUXINI_FILE; + +void MSSTYLES_InitMSStyles(); + HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWSTR pszSizeName, PTHEME_FILE *tf); void MSSTYLES_CloseThemeFile(PTHEME_FILE tf); +HRESULT MSSTYLES_SetActiveTheme(PTHEME_FILE tf); +PTHEME_CLASS MSSTYLES_OpenThemeClass(LPCWSTR pszClassList); +HRESULT MSSTYLES_CloseThemeClass(PTHEME_CLASS tc); +BOOL MSSTYLES_LookupProperty(LPCWSTR pszPropertyName, DWORD *dwPrimitive, DWORD *dwId); +HRESULT MSSTYLES_GetDocumentationProperty(LPCWSTR pszPropertyName, LPWSTR pszValueBuff, int cchMaxValChars); +PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf); +PUXINI_FILE UXINI_LoadINI(PTHEME_FILE tf, LPCWSTR lpName); +void UXINI_CloseINI(PUXINI_FILE uf); +void UXINI_ResetINI(PUXINI_FILE uf); +LPCWSTR UXINI_GetNextSection(PUXINI_FILE uf, DWORD *dwLen); +BOOL UXINI_FindSection(PUXINI_FILE uf, LPCWSTR lpName); +LPCWSTR UXINI_GetNextValue(PUXINI_FILE uf, DWORD *dwNameLen, LPCWSTR *lpValue, DWORD *dwValueLen); +BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen); #endif Index: dlls/uxtheme/property.c =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/property.c,v retrieving revision 1.1 diff -u -r1.1 property.c --- dlls/uxtheme/property.c 4 Dec 2003 20:55:30 -0000 1.1 +++ dlls/uxtheme/property.c 11 Jan 2004 01:24:22 -0000 @@ -35,18 +35,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(uxtheme); /*********************************************************************** - * GetThemeDocumentationProperty (UXTHEME.@) - */ -HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName, - LPCWSTR pszPropertyName, - LPWSTR pszValueBuff, - int cchMaxValChars) -{ - FIXME("%s %s: stub\n", debugstr_w(pszThemeName), debugstr_w(pszPropertyName)); - return ERROR_CALL_NOT_IMPLEMENTED; -} - -/*********************************************************************** * GetThemeBool (UXTHEME.@) */ HRESULT WINAPI GetThemeBool(HTHEME hTheme, int iPartId, int iStateId, Index: dlls/uxtheme/system.c =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/system.c,v retrieving revision 1.3 diff -u -r1.3 system.c --- dlls/uxtheme/system.c 6 Jan 2004 22:08:33 -0000 1.3 +++ dlls/uxtheme/system.c 11 Jan 2004 01:24:23 -0000 @@ -29,6 +29,7 @@ #include "winreg.h" #include "shlwapi.h" #include "uxtheme.h" +#include "tmschema.h" #include "uxthemedll.h" #include "msstyles.h" @@ -53,6 +54,10 @@ static const WCHAR szColorName[] = {'C','o','l','o','r','N','a','m','e','\0'}; static const WCHAR szDllName[] = {'D','l','l','N','a','m','e','\0'}; +static const WCHAR szIniDocumentation[] = {'d','o','c','u','m','e','n','t','a','t','i','o','n','\0'}; + +HINSTANCE hDllInst; + DWORD dwThemeAppProperties = STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS; ATOM atWindowTheme; ATOM atSubAppName; @@ -66,29 +71,18 @@ /***********************************************************************/ /*********************************************************************** - * UXTHEME_InitSystem + * UXTHEME_LoadTheme + * + * Set the current active theme from the registry */ -void UXTHEME_InitSystem() +void UXTHEME_LoadTheme() { - const WCHAR szWindowTheme[] = { - 'u','x','_','t','h','e','m','e','\0' - }; - const WCHAR szSubAppName[] = { - 'u','x','_','s','u','b','a','p','p','\0' - }; - const WCHAR szSubIdList[] = { - 'u','x','_','s','u','b','i','d','l','s','t','\0' - }; HKEY hKey; LONG buffsize; HRESULT hr; WCHAR tmp[10]; PTHEME_FILE pt; - atWindowTheme = GlobalAddAtomW(szWindowTheme); - atSubAppName = GlobalAddAtomW(szSubAppName); - atSubIdList = GlobalAddAtomW(szSubIdList); - /* Get current theme configuration */ if(!RegOpenKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) { TRACE("Loading theme config\n"); @@ -129,15 +123,85 @@ /* Make sure the global color & size match the theme */ lstrcpynW(szCurrentColor, pt->pszSelectedColor, sizeof(szCurrentColor)/sizeof(szCurrentColor[0])); lstrcpynW(szCurrentSize, pt->pszSelectedSize, sizeof(szCurrentSize)/sizeof(szCurrentSize[0])); + + MSSTYLES_SetActiveTheme(pt); + TRACE("Theme active: %s %s %s\n", debugstr_w(szCurrentTheme), + debugstr_w(szCurrentColor), debugstr_w(szCurrentSize)); MSSTYLES_CloseThemeFile(pt); } } - - if(!bThemeActive) + if(!bThemeActive) { + MSSTYLES_SetActiveTheme(NULL); TRACE("Themeing not active\n"); + } +} + +/*********************************************************************** + * UXTHEME_SetActiveTheme + * + * Change the current active theme + */ +HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf) +{ + HKEY hKey; + WCHAR tmp[2]; + HRESULT hr; + + hr = MSSTYLES_SetActiveTheme(tf); + if(FAILED(hr)) + return hr; + if(tf) { + bThemeActive = TRUE; + GetModuleFileNameW(tf->hTheme, szCurrentTheme, sizeof(szCurrentTheme)/sizeof(szCurrentTheme[0])); + lstrcpynW(szCurrentColor, tf->pszSelectedColor, sizeof(szCurrentColor)/sizeof(szCurrentColor[0])); + lstrcpynW(szCurrentSize, tf->pszSelectedSize, sizeof(szCurrentSize)/sizeof(szCurrentSize[0])); + } + else { + bThemeActive = FALSE; + szCurrentTheme[0] = '\0'; + szCurrentColor[0] = '\0'; + szCurrentSize[0] = '\0'; + return MSSTYLES_SetActiveTheme(NULL); + } + + TRACE("Writing theme config to registry\n"); + if(!RegCreateKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) { + tmp[0] = bThemeActive?'1':'0'; + tmp[1] = '\0'; + RegSetValueExW(hKey, szThemeActive, 0, REG_SZ, (const BYTE*)tmp, sizeof(WCHAR)*2); + RegSetValueExW(hKey, szColorName, 0, REG_SZ, (const BYTE*)szCurrentColor, lstrlenW(szCurrentColor)+1); + RegSetValueExW(hKey, szSizeName, 0, REG_SZ, (const BYTE*)szCurrentSize, lstrlenW(szCurrentSize)+1); + RegSetValueExW(hKey, szDllName, 0, REG_SZ, (const BYTE*)szCurrentTheme, lstrlenW(szCurrentTheme)+1); + RegCloseKey(hKey); + } else - TRACE("Theme active: %s %s %s\n", debugstr_w(szCurrentTheme), - debugstr_w(szCurrentColor), debugstr_w(szCurrentSize)); + TRACE("Failed to open theme registry key\n"); + return hr; +} + +/*********************************************************************** + * UXTHEME_InitSystem + */ +void UXTHEME_InitSystem(HINSTANCE hInst) +{ + const WCHAR szWindowTheme[] = { + 'u','x','_','t','h','e','m','e','\0' + }; + const WCHAR szSubAppName[] = { + 'u','x','_','s','u','b','a','p','p','\0' + }; + const WCHAR szSubIdList[] = { + 'u','x','_','s','u','b','i','d','l','s','t','\0' + }; + + hDllInst = hInst; + + atWindowTheme = GlobalAddAtomW(szWindowTheme); + atSubAppName = GlobalAddAtomW(szSubAppName); + atSubIdList = GlobalAddAtomW(szSubIdList); + + UXTHEME_LoadTheme(); + MSSTYLES_InitMSStyles(); } /*********************************************************************** @@ -180,15 +244,21 @@ PostMessageW(HWND_BROADCAST, WM_THEMECHANGED, 0, 0); } return S_OK; - } +} /*********************************************************************** * OpenThemeData (UXTHEME.@) */ HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR pszClassList) { - FIXME("%p %s: stub\n", hwnd, debugstr_w(pszClassList)); - return NULL; + HTHEME hTheme; + TRACE("(%p,%s)\n", hwnd, debugstr_w(pszClassList)); + if(!bThemeActive) + return NULL; + hTheme = MSSTYLES_OpenThemeClass(pszClassList); + if(IsWindow(hwnd)) + SetPropW(hwnd, MAKEINTATOMW(atWindowTheme), hTheme); + return hTheme; } /*********************************************************************** @@ -281,10 +351,10 @@ */ HRESULT WINAPI CloseThemeData(HTHEME hTheme) { - FIXME("stub\n"); + TRACE("(%p)\n", hTheme); if(!hTheme) return E_HANDLE; - return S_OK; + return MSSTYLES_CloseThemeClass(hTheme); } /*********************************************************************** @@ -310,6 +380,68 @@ return FALSE; } +/*********************************************************************** + * GetThemeDocumentationProperty (UXTHEME.@) + * + * Try and retrieve the documentation property from string resources + * if that fails, get it from the [documentation] section of themes.ini + */ +HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName, + LPCWSTR pszPropertyName, + LPWSTR pszValueBuff, + int cchMaxValChars) +{ + const WORD wDocToRes[] = { + TMT_DISPLAYNAME,5000, + TMT_TOOLTIP,5001, + TMT_COMPANY,5002, + TMT_AUTHOR,5003, + TMT_COPYRIGHT,5004, + TMT_URL,5005, + TMT_VERSION,5006, + TMT_DESCRIPTION,5007 + }; + + PTHEME_FILE pt; + HRESULT hr; + int i; + DWORD dwDocId; + TRACE("(%s,%s,%p,%d)\n", debugstr_w(pszThemeName), debugstr_w(pszPropertyName), + pszValueBuff, cchMaxValChars); + + hr = MSSTYLES_OpenThemeFile(pszThemeName, NULL, NULL, &pt); + if(FAILED(hr)) return hr; + + /* Try to load from string resources */ + hr = E_PROP_ID_UNSUPPORTED; + if(MSSTYLES_LookupProperty(pszPropertyName, NULL, &dwDocId)) { + for(i=0; i<sizeof(wDocToRes)/sizeof(wDocToRes[0]); i+=2) { + if(wDocToRes[i] == dwDocId) { + if(LoadStringW(pt->hTheme, wDocToRes[i+1], pszValueBuff, cchMaxValChars)) { + hr = S_OK; + break; + } + } + } + } + /* If loading from string resource failed, try getting it from the theme.ini */ + if(FAILED(hr)) { + PUXINI_FILE uf = MSSTYLES_GetThemeIni(pt); + if(UXINI_FindSection(uf, szIniDocumentation)) { + LPCWSTR lpValue; + DWORD dwLen; + if(UXINI_FindValue(uf, pszPropertyName, &lpValue, &dwLen)) { + lstrcpynW(pszValueBuff, lpValue, min(dwLen+1,cchMaxValChars)); + hr = S_OK; + } + } + UXINI_CloseINI(uf); + } + + MSSTYLES_CloseThemeFile(pt); + return hr; +} + /********************************************************************** * Undocumented functions */ @@ -385,8 +517,11 @@ */ HRESULT WINAPI ApplyTheme(HTHEMEFILE hThemeFile, char *unknown, HWND hWnd) { - FIXME("%s: stub\n", unknown); - return ERROR_CALL_NOT_IMPLEMENTED; + HRESULT hr; + TRACE("(%p,%s,%p)\n", hThemeFile, unknown, hWnd); + hr = UXTHEME_SetActiveTheme(hThemeFile); + PostMessageW(HWND_BROADCAST, WM_THEMECHANGED, 0, 0); + return hr; } /********************************************************************** Index: dlls/uxtheme/uxthemedll.h =================================================================== RCS file: /home/wine/wine/dlls/uxtheme/uxthemedll.h,v retrieving revision 1.2 diff -u -r1.2 uxthemedll.h --- dlls/uxtheme/uxthemedll.h 6 Jan 2004 22:08:33 -0000 1.2 +++ dlls/uxtheme/uxthemedll.h 11 Jan 2004 01:24:23 -0000 @@ -85,6 +85,6 @@ HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown, ParseThemeIniFileProc callback, LPVOID lpData); -extern void UXTHEME_InitSystem(void); +extern void UXTHEME_InitSystem(HINSTANCE hInst); #endif --- /dev/null 1969-12-31 19:00:00.000000000 -0500 +++ dlls/uxtheme/msstyles.rc 2004-01-10 12:05:52.000000000 -0500 @@ -0,0 +1,1014 @@ +/* + * Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "windef.h" +#include "winbase.h" +#include "tmschema.h" + +# define TMT_ENUM 200 + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +/*********************************************************************** + * Map property names to IDs & primitive types + * PrimitiveType,PropertyID,PropertyName + */ +MAP_PROPERTY RCDATA +BEGIN +TMT_STRING,TMT_STRING,L"STRING\0", +TMT_INT,TMT_INT,L"INT\0", +TMT_BOOL,TMT_BOOL,L"BOOL\0", +TMT_COLOR,TMT_COLOR,L"COLOR\0", +TMT_MARGINS,TMT_MARGINS,L"MARGINS\0", +TMT_FILENAME,TMT_FILENAME,L"FILENAME\0", +TMT_SIZE,TMT_SIZE,L"SIZE\0", +TMT_POSITION,TMT_POSITION,L"POSITION\0", +TMT_RECT,TMT_RECT,L"RECT\0", +TMT_FONT,TMT_FONT,L"FONT\0", +TMT_INTLIST,TMT_INTLIST,L"INTLIST\0", +TMT_STRING,TMT_COLORSCHEMES,L"COLORSCHEMES\0", +TMT_STRING,TMT_SIZES,L"SIZES\0", +TMT_INT,TMT_CHARSET,L"CHARSET\0", +TMT_STRING,TMT_DISPLAYNAME,L"DISPLAYNAME\0", +TMT_STRING,TMT_TOOLTIP,L"TOOLTIP\0", +TMT_STRING,TMT_COMPANY,L"COMPANY\0", +TMT_STRING,TMT_AUTHOR,L"AUTHOR\0", +TMT_STRING,TMT_COPYRIGHT,L"COPYRIGHT\0", +TMT_STRING,TMT_URL,L"URL\0", +TMT_STRING,TMT_VERSION,L"VERSION\0", +TMT_STRING,TMT_DESCRIPTION,L"DESCRIPTION\0", +TMT_FONT,TMT_CAPTIONFONT,L"CAPTIONFONT\0", +TMT_FONT,TMT_SMALLCAPTIONFONT,L"SMALLCAPTIONFONT\0", +TMT_FONT,TMT_MENUFONT,L"MENUFONT\0", +TMT_FONT,TMT_STATUSFONT,L"STATUSFONT\0", +TMT_FONT,TMT_MSGBOXFONT,L"MSGBOXFONT\0", +TMT_FONT,TMT_ICONTITLEFONT,L"ICONTITLEFONT\0", +TMT_BOOL,TMT_FLATMENUS,L"FLATMENUS\0", +TMT_SIZE,TMT_SIZINGBORDERWIDTH,L"SIZINGBORDERWIDTH\0", +TMT_SIZE,TMT_SCROLLBARWIDTH,L"SCROLLBARWIDTH\0", +TMT_SIZE,TMT_SCROLLBARHEIGHT,L"SCROLLBARHEIGHT\0", +TMT_SIZE,TMT_CAPTIONBARWIDTH,L"CAPTIONBARWIDTH\0", +TMT_SIZE,TMT_CAPTIONBARHEIGHT,L"CAPTIONBARHEIGHT\0", +TMT_SIZE,TMT_SMCAPTIONBARWIDTH,L"SMCAPTIONBARWIDTH\0", +TMT_SIZE,TMT_SMCAPTIONBARHEIGHT,L"SMCAPTIONBARHEIGHT\0", +TMT_SIZE,TMT_MENUBARWIDTH,L"MENUBARWIDTH\0", +TMT_SIZE,TMT_MENUBARHEIGHT,L"MENUBARHEIGHT\0", +TMT_INT,TMT_MINCOLORDEPTH,L"MINCOLORDEPTH\0", +TMT_STRING,TMT_CSSNAME,L"CSSNAME\0", +TMT_STRING,TMT_XMLNAME,L"XMLNAME\0", +TMT_COLOR,TMT_SCROLLBAR,L"SCROLLBAR\0", +TMT_COLOR,TMT_BACKGROUND,L"BACKGROUND\0", +TMT_COLOR,TMT_ACTIVECAPTION,L"ACTIVECAPTION\0", +TMT_COLOR,TMT_INACTIVECAPTION,L"INACTIVECAPTION\0", +TMT_COLOR,TMT_MENU,L"MENU\0", +TMT_COLOR,TMT_WINDOW,L"WINDOW\0", +TMT_COLOR,TMT_WINDOWFRAME,L"WINDOWFRAME\0", +TMT_COLOR,TMT_MENUTEXT,L"MENUTEXT\0", +TMT_COLOR,TMT_WINDOWTEXT,L"WINDOWTEXT\0", +TMT_COLOR,TMT_CAPTIONTEXT,L"CAPTIONTEXT\0", +TMT_COLOR,TMT_ACTIVEBORDER,L"ACTIVEBORDER\0", +TMT_COLOR,TMT_INACTIVEBORDER,L"INACTIVEBORDER\0", +TMT_COLOR,TMT_APPWORKSPACE,L"APPWORKSPACE\0", +TMT_COLOR,TMT_HIGHLIGHT,L"HIGHLIGHT\0", +TMT_COLOR,TMT_HIGHLIGHTTEXT,L"HIGHLIGHTTEXT\0", +TMT_COLOR,TMT_BTNFACE,L"BTNFACE\0", +TMT_COLOR,TMT_BTNSHADOW,L"BTNSHADOW\0", +TMT_COLOR,TMT_GRAYTEXT,L"GRAYTEXT\0", +TMT_COLOR,TMT_BTNTEXT,L"BTNTEXT\0", +TMT_COLOR,TMT_INACTIVECAPTIONTEXT,L"INACTIVECAPTIONTEXT\0", +TMT_COLOR,TMT_BTNHIGHLIGHT,L"BTNHIGHLIGHT\0", +TMT_COLOR,TMT_DKSHADOW3D,L"DKSHADOW3D\0", +TMT_COLOR,TMT_LIGHT3D,L"LIGHT3D\0", +TMT_COLOR,TMT_INFOTEXT,L"INFOTEXT\0", +TMT_COLOR,TMT_INFOBK,L"INFOBK\0", +TMT_COLOR,TMT_BUTTONALTERNATEFACE,L"BUTTONALTERNATEFACE\0", +TMT_COLOR,TMT_HOTTRACKING,L"HOTTRACKING\0", +TMT_COLOR,TMT_GRADIENTACTIVECAPTION,L"GRADIENTACTIVECAPTION\0", +TMT_COLOR,TMT_GRADIENTINACTIVECAPTION,L"GRADIENTINACTIVECAPTION\0", +TMT_COLOR,TMT_MENUHILIGHT,L"MENUHILIGHT\0", +TMT_COLOR,TMT_MENUBAR,L"MENUBAR\0", +TMT_INT,TMT_FROMHUE1,L"FROMHUE1\0", +TMT_INT,TMT_FROMHUE2,L"FROMHUE2\0", +TMT_INT,TMT_FROMHUE3,L"FROMHUE3\0", +TMT_INT,TMT_FROMHUE4,L"FROMHUE4\0", +TMT_INT,TMT_FROMHUE5,L"FROMHUE5\0", +TMT_INT,TMT_TOHUE1,L"TOHUE1\0", +TMT_INT,TMT_TOHUE2,L"TOHUE2\0", +TMT_INT,TMT_TOHUE3,L"TOHUE3\0", +TMT_INT,TMT_TOHUE4,L"TOHUE4\0", +TMT_INT,TMT_TOHUE5,L"TOHUE5\0", +TMT_COLOR,TMT_FROMCOLOR1,L"FROMCOLOR1\0", +TMT_COLOR,TMT_FROMCOLOR2,L"FROMCOLOR2\0", +TMT_COLOR,TMT_FROMCOLOR3,L"FROMCOLOR3\0", +TMT_COLOR,TMT_FROMCOLOR4,L"FROMCOLOR4\0", +TMT_COLOR,TMT_FROMCOLOR5,L"FROMCOLOR5\0", +TMT_COLOR,TMT_TOCOLOR1,L"TOCOLOR1\0", +TMT_COLOR,TMT_TOCOLOR2,L"TOCOLOR2\0", +TMT_COLOR,TMT_TOCOLOR3,L"TOCOLOR3\0", +TMT_COLOR,TMT_TOCOLOR4,L"TOCOLOR4\0", +TMT_COLOR,TMT_TOCOLOR5,L"TOCOLOR5\0", +TMT_BOOL,TMT_TRANSPARENT,L"TRANSPARENT\0", +TMT_BOOL,TMT_AUTOSIZE,L"AUTOSIZE\0", +TMT_BOOL,TMT_BORDERONLY,L"BORDERONLY\0", +TMT_BOOL,TMT_COMPOSITED,L"COMPOSITED\0", +TMT_BOOL,TMT_BGFILL,L"BGFILL\0", +TMT_BOOL,TMT_GLYPHTRANSPARENT,L"GLYPHTRANSPARENT\0", +TMT_BOOL,TMT_GLYPHONLY,L"GLYPHONLY\0", +TMT_BOOL,TMT_ALWAYSSHOWSIZINGBAR,L"ALWAYSSHOWSIZINGBAR\0", +TMT_BOOL,TMT_MIRRORIMAGE,L"MIRRORIMAGE\0", +TMT_BOOL,TMT_UNIFORMSIZING,L"UNIFORMSIZING\0", +TMT_BOOL,TMT_INTEGRALSIZING,L"INTEGRALSIZING\0", +TMT_BOOL,TMT_SOURCEGROW,L"SOURCEGROW\0", +TMT_BOOL,TMT_SOURCESHRINK,L"SOURCESHRINK\0", +TMT_INT,TMT_IMAGECOUNT,L"IMAGECOUNT\0", +TMT_INT,TMT_ALPHALEVEL,L"ALPHALEVEL\0", +TMT_INT,TMT_BORDERSIZE,L"BORDERSIZE\0", +TMT_INT,TMT_ROUNDCORNERWIDTH,L"ROUNDCORNERWIDTH\0", +TMT_INT,TMT_ROUNDCORNERHEIGHT,L"ROUNDCORNERHEIGHT\0", +TMT_INT,TMT_GRADIENTRATIO1,L"GRADIENTRATIO1\0", +TMT_INT,TMT_GRADIENTRATIO2,L"GRADIENTRATIO2\0", +TMT_INT,TMT_GRADIENTRATIO3,L"GRADIENTRATIO3\0", +TMT_INT,TMT_GRADIENTRATIO4,L"GRADIENTRATIO4\0", +TMT_INT,TMT_GRADIENTRATIO5,L"GRADIENTRATIO5\0", +TMT_INT,TMT_PROGRESSCHUNKSIZE,L"PROGRESSCHUNKSIZE\0", +TMT_INT,TMT_PROGRESSSPACESIZE,L"PROGRESSSPACESIZE\0", +TMT_INT,TMT_SATURATION,L"SATURATION\0", +TMT_INT,TMT_TEXTBORDERSIZE,L"TEXTBORDERSIZE\0", +TMT_INT,TMT_ALPHATHRESHOLD,L"ALPHATHRESHOLD\0", +TMT_SIZE,TMT_WIDTH,L"WIDTH\0", +TMT_SIZE,TMT_HEIGHT,L"HEIGHT\0", +TMT_INT,TMT_GLYPHINDEX,L"GLYPHINDEX\0", +TMT_INT,TMT_TRUESIZESTRETCHMARK,L"TRUESIZESTRETCHMARK\0", +TMT_INT,TMT_MINDPI1,L"MINDPI1\0", +TMT_INT,TMT_MINDPI2,L"MINDPI2\0", +TMT_INT,TMT_MINDPI3,L"MINDPI3\0", +TMT_INT,TMT_MINDPI4,L"MINDPI4\0", +TMT_INT,TMT_MINDPI5,L"MINDPI5\0", +TMT_FONT,TMT_GLYPHFONT,L"GLYPHFONT\0", +TMT_FILENAME,TMT_IMAGEFILE,L"IMAGEFILE\0", +TMT_FILENAME,TMT_IMAGEFILE1,L"IMAGEFILE1\0", +TMT_FILENAME,TMT_IMAGEFILE2,L"IMAGEFILE2\0", +TMT_FILENAME,TMT_IMAGEFILE3,L"IMAGEFILE3\0", +TMT_FILENAME,TMT_IMAGEFILE4,L"IMAGEFILE4\0", +TMT_FILENAME,TMT_IMAGEFILE5,L"IMAGEFILE5\0", +TMT_FILENAME,TMT_STOCKIMAGEFILE,L"STOCKIMAGEFILE\0", +TMT_FILENAME,TMT_GLYPHIMAGEFILE,L"GLYPHIMAGEFILE\0", +TMT_STRING,TMT_TEXT,L"TEXT\0", +TMT_POSITION,TMT_OFFSET,L"OFFSET\0", +TMT_POSITION,TMT_TEXTSHADOWOFFSET,L"TEXTSHADOWOFFSET\0", +TMT_POSITION,TMT_MINSIZE,L"MINSIZE\0", +TMT_POSITION,TMT_MINSIZE1,L"MINSIZE1\0", +TMT_POSITION,TMT_MINSIZE2,L"MINSIZE2\0", +TMT_POSITION,TMT_MINSIZE3,L"MINSIZE3\0", +TMT_POSITION,TMT_MINSIZE4,L"MINSIZE4\0", +TMT_POSITION,TMT_MINSIZE5,L"MINSIZE5\0", +TMT_POSITION,TMT_NORMALSIZE,L"NORMALSIZE\0", +TMT_MARGINS,TMT_SIZINGMARGINS,L"SIZINGMARGINS\0", +TMT_MARGINS,TMT_CONTENTMARGINS,L"CONTENTMARGINS\0", +TMT_MARGINS,TMT_CAPTIONMARGINS,L"CAPTIONMARGINS\0", +TMT_COLOR,TMT_BORDERCOLOR,L"BORDERCOLOR\0", +TMT_COLOR,TMT_FILLCOLOR,L"FILLCOLOR\0", +TMT_COLOR,TMT_TEXTCOLOR,L"TEXTCOLOR\0", +TMT_COLOR,TMT_EDGELIGHTCOLOR,L"EDGELIGHTCOLOR\0", +TMT_COLOR,TMT_EDGEHIGHLIGHTCOLOR,L"EDGEHIGHLIGHTCOLOR\0", +TMT_COLOR,TMT_EDGESHADOWCOLOR,L"EDGESHADOWCOLOR\0", +TMT_COLOR,TMT_EDGEDKSHADOWCOLOR,L"EDGEDKSHADOWCOLOR\0", +TMT_COLOR,TMT_EDGEFILLCOLOR,L"EDGEFILLCOLOR\0", +TMT_COLOR,TMT_TRANSPARENTCOLOR,L"TRANSPARENTCOLOR\0", +TMT_COLOR,TMT_GRADIENTCOLOR1,L"GRADIENTCOLOR1\0", +TMT_COLOR,TMT_GRADIENTCOLOR2,L"GRADIENTCOLOR2\0", +TMT_COLOR,TMT_GRADIENTCOLOR3,L"GRADIENTCOLOR3\0", +TMT_COLOR,TMT_GRADIENTCOLOR4,L"GRADIENTCOLOR4\0", +TMT_COLOR,TMT_GRADIENTCOLOR5,L"GRADIENTCOLOR5\0", +TMT_COLOR,TMT_SHADOWCOLOR,L"SHADOWCOLOR\0", +TMT_COLOR,TMT_GLOWCOLOR,L"GLOWCOLOR\0", +TMT_COLOR,TMT_TEXTBORDERCOLOR,L"TEXTBORDERCOLOR\0", +TMT_COLOR,TMT_TEXTSHADOWCOLOR,L"TEXTSHADOWCOLOR\0", +TMT_COLOR,TMT_GLYPHTEXTCOLOR,L"GLYPHTEXTCOLOR\0", +TMT_COLOR,TMT_GLYPHTRANSPARENTCOLOR,L"GLYPHTRANSPARENTCOLOR\0", +TMT_COLOR,TMT_FILLCOLORHINT,L"FILLCOLORHINT\0", +TMT_COLOR,TMT_BORDERCOLORHINT,L"BORDERCOLORHINT\0", +TMT_COLOR,TMT_ACCENTCOLORHINT,L"ACCENTCOLORHINT\0", +TMT_ENUM,TMT_BGTYPE,L"BGTYPE\0", +TMT_ENUM,TMT_BORDERTYPE,L"BORDERTYPE\0", +TMT_ENUM,TMT_FILLTYPE,L"FILLTYPE\0", +TMT_ENUM,TMT_SIZINGTYPE,L"SIZINGTYPE\0", +TMT_ENUM,TMT_HALIGN,L"HALIGN\0", +TMT_ENUM,TMT_CONTENTALIGNMENT,L"CONTENTALIGNMENT\0", +TMT_ENUM,TMT_VALIGN,L"VALIGN\0", +TMT_ENUM,TMT_OFFSETTYPE,L"OFFSETTYPE\0", +TMT_ENUM,TMT_ICONEFFECT,L"ICONEFFECT\0", +TMT_ENUM,TMT_TEXTSHADOWTYPE,L"TEXTSHADOWTYPE\0", +TMT_ENUM,TMT_IMAGELAYOUT,L"IMAGELAYOUT\0", +TMT_ENUM,TMT_GLYPHTYPE,L"GLYPHTYPE\0", +TMT_ENUM,TMT_IMAGESELECTTYPE,L"IMAGESELECTTYPE\0", +TMT_ENUM,TMT_GLYPHFONTSIZINGTYPE,L"GLYPHFONTSIZINGTYPE\0", +TMT_ENUM,TMT_TRUESIZESCALINGTYPE,L"TRUESIZESCALINGTYPE\0", +TMT_BOOL,TMT_USERPICTURE,L"USERPICTURE\0", +TMT_RECT,TMT_DEFAULTPANESIZE,L"DEFAULTPANESIZE\0", +TMT_COLOR,TMT_BLENDCOLOR,L"BLENDCOLOR\0", +0,0,L"\0" +END + +/*********************************************************************** + * Map strings to enumeration values + * Enum,Value,ValueName + */ +MAP_ENUM RCDATA +BEGIN +TMT_BGTYPE,BT_IMAGEFILE,L"IMAGEFILE\0", +TMT_BGTYPE,BT_BORDERFILL,L"BORDERFILL\0", +TMT_BGTYPE,BT_NONE,L"NONE\0", +TMT_IMAGELAYOUT,IL_VERTICAL,L"VERTICAL\0", +TMT_IMAGELAYOUT,IL_HORIZONTAL,L"HORIZONTAL\0", +TMT_BORDERTYPE,BT_RECT,L"RECT\0", +TMT_BORDERTYPE,BT_ROUNDRECT,L"ROUNDRECT\0", +TMT_BORDERTYPE,BT_ELLIPSE,L"ELLIPSE\0", +TMT_FILLTYPE,FT_SOLID,L"SOLID\0", +TMT_FILLTYPE,FT_VERTGRADIENT,L"VERTGRADIENT\0", +TMT_FILLTYPE,FT_HORZGRADIENT,L"HORZGRADIENT\0", +TMT_FILLTYPE,FT_RADIALGRADIENT,L"RADIALGRADIENT\0", +TMT_FILLTYPE,FT_TILEIMAGE,L"TILEIMAGE\0", +TMT_SIZINGTYPE,ST_TRUESIZE,L"TRUESIZE\0", +TMT_SIZINGTYPE,ST_STRETCH,L"STRETCH\0", +TMT_SIZINGTYPE,ST_TILE,L"TILE\0", +TMT_HALIGN,HA_LEFT,L"LEFT\0", +TMT_HALIGN,HA_CENTER,L"CENTER\0", +TMT_HALIGN,HA_RIGHT,L"RIGHT\0", +TMT_CONTENTALIGNMENT,CA_LEFT,L"LEFT\0", +TMT_CONTENTALIGNMENT,CA_CENTER,L"CENTER\0", +TMT_CONTENTALIGNMENT,CA_RIGHT,L"RIGHT\0", +TMT_VALIGN,VA_TOP,L"TOP\0", +TMT_VALIGN,VA_CENTER,L"CENTER\0", +TMT_VALIGN,VA_BOTTOM,L"BOTTOM\0", +TMT_OFFSETTYPE,OT_TOPLEFT,L"TOPLEFT\0", +TMT_OFFSETTYPE,OT_TOPRIGHT,L"TOPRIGHT\0", +TMT_OFFSETTYPE,OT_TOPMIDDLE,L"TOPMIDDLE\0", +TMT_OFFSETTYPE,OT_BOTTOMLEFT,L"BOTTOMLEFT\0", +TMT_OFFSETTYPE,OT_BOTTOMRIGHT,L"BOTTOMRIGHT\0", +TMT_OFFSETTYPE,OT_BOTTOMMIDDLE,L"BOTTOMMIDDLE\0", +TMT_OFFSETTYPE,OT_MIDDLELEFT,L"MIDDLELEFT\0", +TMT_OFFSETTYPE,OT_MIDDLERIGHT,L"MIDDLERIGHT\0", +TMT_OFFSETTYPE,OT_LEFTOFCAPTION,L"LEFTOFCAPTION\0", +TMT_OFFSETTYPE,OT_RIGHTOFCAPTION,L"RIGHTOFCAPTION\0", +TMT_OFFSETTYPE,OT_LEFTOFLASTBUTTON,L"LEFTOFLASTBUTTON\0", +TMT_OFFSETTYPE,OT_RIGHTOFLASTBUTTON,L"RIGHTOFLASTBUTTON\0", +TMT_OFFSETTYPE,OT_ABOVELASTBUTTON,L"ABOVELASTBUTTON\0", +TMT_OFFSETTYPE,OT_BELOWLASTBUTTON,L"BELOWLASTBUTTON\0", +TMT_ICONEFFECT,ICE_NONE,L"NONE\0", +TMT_ICONEFFECT,ICE_GLOW,L"GLOW\0", +TMT_ICONEFFECT,ICE_SHADOW,L"SHADOW\0", +TMT_ICONEFFECT,ICE_PULSE,L"PULSE\0", +TMT_ICONEFFECT,ICE_ALPHA,L"ALPHA\0", +TMT_TEXTSHADOWTYPE,TST_NONE,L"NONE\0", +TMT_TEXTSHADOWTYPE,TST_SINGLE,L"SINGLE\0", +TMT_TEXTSHADOWTYPE,TST_CONTINUOUS,L"CONTINUOUS\0", +TMT_GLYPHTYPE,GT_NONE,L"NONE\0", +TMT_GLYPHTYPE,GT_IMAGEGLYPH,L"IMAGEGLYPH\0", +TMT_GLYPHTYPE,GT_FONTGLYPH,L"FONTGLYPH\0", +TMT_IMAGESELECTTYPE,IST_NONE,L"NONE\0", +TMT_IMAGESELECTTYPE,IST_SIZE,L"SIZE\0", +TMT_IMAGESELECTTYPE,IST_DPI,L"DPI\0", +TMT_TRUESIZESCALINGTYPE,TSST_NONE,L"NONE\0", +TMT_TRUESIZESCALINGTYPE,TSST_SIZE,L"SIZE\0", +TMT_TRUESIZESCALINGTYPE,TSST_DPI,L"DPI\0", +TMT_GLYPHFONTSIZINGTYPE,GFST_NONE,L"NONE\0", +TMT_GLYPHFONTSIZINGTYPE,GFST_SIZE,L"SIZE\0", +TMT_GLYPHFONTSIZINGTYPE,GFST_DPI,L"DPI\0", +0,0,L"\0" +END + +/*********************************************************************** + * Classes defined below + * Defined as PartID,StateID,TextName + * If StateID == 0 then its a part being defined + */ + +BUTTON RCDATA +BEGIN +BP_PUSHBUTTON,0,L"PUSHBUTTON\0", +BP_PUSHBUTTON,PBS_NORMAL,L"NORMAL\0", +BP_PUSHBUTTON,PBS_HOT,L"HOT\0", +BP_PUSHBUTTON,PBS_PRESSED,L"PRESSED\0", +BP_PUSHBUTTON,PBS_DISABLED,L"DISABLED\0", +BP_PUSHBUTTON,PBS_DEFAULTED,L"DEFAULTED\0", +BP_RADIOBUTTON,0,L"RADIOBUTTON\0", +BP_RADIOBUTTON,RBS_UNCHECKEDNORMAL,L"UNCHECKEDNORMAL\0", +BP_RADIOBUTTON,RBS_UNCHECEDHOT,L"UNCHECEDHOT\0", +BP_RADIOBUTTON,RBS_UNCHECKEDPRESSED,L"UNCHECKEDPRESSED\0", +BP_RADIOBUTTON,RBS_UNCHECKEDDISABLED,L"UNCHECKEDDISABLED\0", +BP_RADIOBUTTON,RBS_CHECKEDNORMAL,L"CHECKEDNORMAL\0", +BP_RADIOBUTTON,RBS_CHECKEDHOT,L"CHECKEDHOT\0", +BP_RADIOBUTTON,RBS_CHECKEDPRESSED,L"CHECKEDPRESSED\0", +BP_RADIOBUTTON,RBS_CHECKEDDISABLED,L"CHECKEDDISABLED\0", +BP_CHECKBOX,0,L"CHECKBOX\0", +BP_RADIOBUTTON,CBS_UNCHECKEDNORMAL,L"UNCHECKEDNORMAL\0", +BP_RADIOBUTTON,CBS_UNCHECKEDHOT,L"UNCHECKEDHOT\0", +BP_RADIOBUTTON,CBS_UNCHECKEDPRESSED,L"UNCHECKEDPRESSED\0", +BP_RADIOBUTTON,CBS_UNCHECKEDDISABLED,L"UNCHECKEDDISABLED\0", +BP_RADIOBUTTON,CBS_CHECKEDNORMAL,L"CHECKEDNORMAL\0", +BP_RADIOBUTTON,CBS_CHECKEDHOT,L"CHECKEDHOT\0", +BP_RADIOBUTTON,CBS_CHECKEDPRESSED,L"CHECKEDPRESSED\0", +BP_RADIOBUTTON,CBS_CHECKEDDISABLED,L"CHECKEDDISABLED\0", +BP_RADIOBUTTON,CBS_MIXEDNORMAL,L"MIXEDNORMAL\0", +BP_RADIOBUTTON,CBS_MIXEDHOT,L"MIXEDHOT\0", +BP_RADIOBUTTON,CBS_MIXEDPRESSED,L"MIXEDPRESSED\0", +BP_RADIOBUTTON,CBS_MIXEDDISABLED,L"MIXEDDISABLED\0", +BP_GROUPBOX,0,L"GROUPBOX\0", +BP_RADIOBUTTON,GBS_NORMAL,L"NORMAL\0", +BP_RADIOBUTTON,GBS_DISABLED,L"DISABLED\0", +BP_USERBUTTON,0,L"USERBUTTON\0", +0,0,L"\0" +END + +CLOCK RCDATA +BEGIN +CLP_TIME,0,L"TIME\0", +CLP_TIME,CLS_NORMAL,L"NORMAL\0", +0,0,L"\0" +END + +COMBOBOX RCDATA +BEGIN +CP_DROPDOWNBUTTON,0,L"DROPDOWNBUTTON\0", +CP_DROPDOWNBUTTON,CBXS_NORMAL,L"NORMAL\0", +CP_DROPDOWNBUTTON,CBXS_HOT,L"HOT\0", +CP_DROPDOWNBUTTON,CBXS_PRESSED,L"PRESSED\0", +CP_DROPDOWNBUTTON,CBXS_DISABLED,L"DISABLED\0", +0,0,L"\0" +END + +EDIT RCDATA +BEGIN +EP_EDITTEXT,0,L"EDITTEXT\0", +EP_EDITTEXT,ETS_NORMAL,L"NORMAL\0", +EP_EDITTEXT,ETS_HOT,L"HOT\0", +EP_EDITTEXT,ETS_SELECTED,L"SELECTED\0", +EP_EDITTEXT,ETS_DISABLED,L"DISABLED\0", +EP_EDITTEXT,ETS_FOCUSED,L"FOCUSED\0", +EP_EDITTEXT,ETS_READONLY,L"READONLY\0", +EP_EDITTEXT,ETS_ASSIST,L"ASSIST\0", +EP_CARET,0,L"CARET\0", +0,0,L"\0" +END + +EXPLORERBAR RCDATA +BEGIN +EBP_HEADERBACKGROUND,0,L"HEADERBACKGROUND\0", +EBP_HEADERCLOSE,0,L"HEADERCLOSE\0", +EBP_HEADERCLOSE,EBHC_NORMAL,L"NORMAL\0", +EBP_HEADERCLOSE,EBHC_HOT,L"HOT\0", +EBP_HEADERCLOSE,EBHC_PRESSED,L"PRESSED\0", +EBP_HEADERPIN,0,L"HEADERPIN\0", +EBP_HEADERPIN,EBHP_NORMAL,L"NORMAL\0", +EBP_HEADERPIN,EBHP_HOT,L"HOT\0", +EBP_HEADERPIN,EBHP_PRESSED,L"PRESSED\0", +EBP_HEADERPIN,EBHP_SELECTEDNORMAL,L"SELECTEDNORMAL\0", +EBP_HEADERPIN,EBHP_SELECTEDHOT,L"SELECTEDHOT\0", +EBP_HEADERPIN,EBHP_SELECTEDPRESSED,L"SELECTEDPRESSED\0", +EBP_IEBARMENU,0,L"IEBARMENU\0", +EBP_IEBARMENU,EBM_NORMAL,L"NORMAL\0", +EBP_IEBARMENU,EBM_HOT,L"HOT\0", +EBP_IEBARMENU,EBM_PRESSED,L"PRESSED\0", +EBP_NORMALGROUPBACKGROUND,0,L"NORMALGROUPBACKGROUND\0", +EBP_NORMALGROUPCOLLAPSE,0,L"NORMALGROUPCOLLAPSE\0", +EBP_NORMALGROUPCOLLAPSE,EBNGC_NORMAL,L"NORMAL\0", +EBP_NORMALGROUPCOLLAPSE,EBNGC_HOT,L"HOT\0", +EBP_NORMALGROUPCOLLAPSE,EBNGC_PRESSED,L"PRESSED\0", +EBP_NORMALGROUPEXPAND,0,L"NORMALGROUPEXPAND\0", +EBP_NORMALGROUPEXPAND,EBNGE_NORMAL,L"NORMAL\0", +EBP_NORMALGROUPEXPAND,EBNGE_HOT,L"HOT\0", +EBP_NORMALGROUPEXPAND,EBNGE_PRESSED,L"PRESSED\0", +EBP_NORMALGROUPHEAD,0,L"NORMALGROUPHEAD\0", +EBP_SPECIALGROUPBACKGROUND,0,L"SPECIALGROUPBACKGROUND\0", +EBP_SPECIALGROUPCOLLAPSE,0,L"SPECIALGROUPCOLLAPSE\0", +EBP_SPECIALGROUPCOLLAPSE,EBSGC_NORMAL,L"NORMAL\0", +EBP_SPECIALGROUPCOLLAPSE,EBSGC_HOT,L"HOT\0", +EBP_SPECIALGROUPCOLLAPSE,EBSGC_PRESSED,L"PRESSED\0", +EBP_SPECIALGROUPEXPAND,0,L"SPECIALGROUPEXPAND\0", +EBP_SPECIALGROUPEXPAND,EBSGE_NORMAL,L"NORMAL\0", +EBP_SPECIALGROUPEXPAND,EBSGE_HOT,L"HOT\0", +EBP_SPECIALGROUPEXPAND,EBSGE_PRESSED,L"PRESSED\0", +EBP_SPECIALGROUPHEAD,0,L"SPECIALGROUPHEAD\0", +0,0,L"\0" +END + +GLOBALS RCDATA +BEGIN +GP_BORDER,0,L"BORDER\0", +GP_BORDER,BSS_FLAT,L"FLAT\0", +GP_BORDER,BSS_RAISED,L"RAISED\0", +GP_BORDER,BSS_SUNKEN,L"SUNKEN\0", +GP_LINEHORZ,0,L"LINEHORZ\0", +GP_LINEHORZ,LHS_FLAT,L"FLAT\0", +GP_LINEHORZ,LHS_RAISED,L"RAISED\0", +GP_LINEHORZ,LHS_SUNKEN,L"SUNKEN\0", +GP_LINEVERT,0,L"LINEVERT\0", +GP_LINEVERT,LVS_FLAT,L"FLAT\0", +GP_LINEVERT,LVS_RAISED,L"RAISED\0", +GP_LINEVERT,LVS_SUNKEN,L"SUNKEN\0", +0,0,L"\0" +END + +HEADER RCDATA +BEGIN +HP_HEADERITEM,0,L"HEADERITEM\0", +HP_HEADERITEM,HIS_NORMAL,L"NORMAL\0", +HP_HEADERITEM,HIS_HOT,L"HOT\0", +HP_HEADERITEM,HIS_PRESSED,L"PRESSED\0", +HP_HEADERITEMLEFT,0,L"HEADERITEMLEFT\0", +HP_HEADERITEMLEFT,HILS_NORMAL,L"NORMAL\0", +HP_HEADERITEMLEFT,HILS_HOT,L"HOT\0", +HP_HEADERITEMLEFT,HILS_PRESSED,L"PRESSED\0", +HP_HEADERITEMRIGHT,0,L"HEADERITEMRIGHT\0", +HP_HEADERITEMRIGHT,HIRS_NORMAL,L"NORMAL\0", +HP_HEADERITEMRIGHT,HIRS_HOT,L"HOT\0", +HP_HEADERITEMRIGHT,HIRS_PRESSED,L"PRESSED\0", +HP_HEADERSORTARROW,0,L"HEADERSORTARROW\0", +HP_HEADERSORTARROW,HSAS_NORMAL,L"NORMAL\0", +HP_HEADERSORTARROW,HSAS_HOT,L"HOT\0", +HP_HEADERSORTARROW,HSAS_PRESSED,L"PRESSED\0", +0,0,L"\0" +END + +LISTVIEW RCDATA +BEGIN +LVP_LISTITEM,0,L"LISTITEM\0", +LVP_LISTITEM,LIS_NORMAL,L"NORMAL\0", +LVP_LISTITEM,LIS_HOT,L"HOT\0", +LVP_LISTITEM,LIS_SELECTED,L"SELECTED\0", +LVP_LISTITEM,LIS_DISABLED,L"DISABLED\0", +LVP_LISTITEM,LIS_SELECTEDNOTFOCUS,L"SELECTEDNOTFOCUS\0", +LVP_LISTGROUP,0,L"LISTGROUP\0", +LVP_LISTDETAIL,0,L"LISTDETAIL\0", +LVP_LISTSORTEDDETAIL,0,L"LISTSORTEDDETAIL\0", +LVP_EMPTYTEXT,0,L"EMPTYTEXT\0", +0,0,L"\0" +END + +MENU RCDATA +BEGIN +MP_MENUITEM,0,L"MENUITEM\0", +MP_MENUITEM,MS_NORMAL,L"NORMAL\0", +MP_MENUITEM,MS_SELECTED,L"SELECTED\0", +MP_MENUITEM,MS_DEMOTED,L"DEMOTED\0", +MP_MENUDROPDOWN,0,L"MENUDROPDOWN\0", +MP_MENUDROPDOWN,MS_NORMAL,L"NORMAL\0", +MP_MENUDROPDOWN,MS_SELECTED,L"SELECTED\0", +MP_MENUDROPDOWN,MS_DEMOTED,L"DEMOTED\0", +MP_MENUBARITEM,0,L"MENUBARITEM\0", +MP_MENUBARITEM,MS_NORMAL,L"NORMAL\0", +MP_MENUBARITEM,MS_SELECTED,L"SELECTED\0", +MP_MENUBARITEM,MS_DEMOTED,L"DEMOTED\0", +MP_MENUBARDROPDOWN,0,L"MENUBARDROPDOWN\0", +MP_MENUBARDROPDOWN,MS_NORMAL,L"NORMAL\0", +MP_MENUBARDROPDOWN,MS_SELECTED,L"SELECTED\0", +MP_MENUBARDROPDOWN,MS_DEMOTED,L"DEMOTED\0", +MP_CHEVRON,0,L"CHEVRON\0", +MP_CHEVRON,MS_NORMAL,L"NORMAL\0", +MP_CHEVRON,MS_SELECTED,L"SELECTED\0", +MP_CHEVRON,MS_DEMOTED,L"DEMOTED\0", +MP_SEPARATOR,0,L"SEPARATOR\0", +MP_SEPARATOR,MS_NORMAL,L"NORMAL\0", +MP_SEPARATOR,MS_SELECTED,L"SELECTED\0", +MP_SEPARATOR,MS_DEMOTED,L"DEMOTED\0", +0,0,L"\0" +END + +MENUBAND RCDATA +BEGIN +MDP_NEWAPPBUTTON,0,L"NEWAPPBUTTON\0", +MDP_NEWAPPBUTTON,MDS_NORMAL,L"NORMAL\0", +MDP_NEWAPPBUTTON,MDS_HOT,L"HOT\0", +MDP_NEWAPPBUTTON,MDS_PRESSED,L"PRESSED\0", +MDP_NEWAPPBUTTON,MDS_DISABLED,L"DISABLED\0", +MDP_NEWAPPBUTTON,MDS_CHECKED,L"CHECKED\0", +MDP_NEWAPPBUTTON,MDS_HOTCHECKED,L"HOTCHECKED\0", +MDP_SEPERATOR,0,L"SEPERATOR\0", +0,0,L"\0" +END + +PAGE RCDATA +BEGIN +PGRP_UP,0,L"UP\0", +PGRP_UP,UPS_NORMAL,L"NORMAL\0", +PGRP_UP,UPS_HOT,L"HOT\0", +PGRP_UP,UPS_PRESSED,L"PRESSED\0", +PGRP_UP,UPS_DISABLED,L"DISABLED\0", +PGRP_DOWN,0,L"DOWN\0", +PGRP_DOWN,DNS_NORMAL,L"NORMAL\0", +PGRP_DOWN,DNS_HOT,L"HOT\0", +PGRP_DOWN,DNS_PRESSED,L"PRESSED\0", +PGRP_DOWN,DNS_DISABLED,L"DISABLED\0", +PGRP_UPHORZ,0,L"UPHORZ\0", +PGRP_UPHORZ,UPHZS_NORMAL,L"NORMAL\0", +PGRP_UPHORZ,UPHZS_HOT,L"HOT\0", +PGRP_UPHORZ,UPHZS_PRESSED,L"PRESSED\0", +PGRP_UPHORZ,UPHZS_DISABLED,L"DISABLED\0", +PGRP_DOWNHORZ,0,L"DOWNHORZ\0", +PGRP_DOWNHORZ,DNHZS_NORMAL,L"NORMAL\0", +PGRP_DOWNHORZ,DNHZS_HOT,L"HOT\0", +PGRP_DOWNHORZ,DNHZS_PRESSED,L"PRESSED\0", +PGRP_DOWNHORZ,DNHZS_DISABLED,L"DISABLED\0", +0,0,L"\0" +END + +PROGRESS RCDATA +BEGIN +PP_BAR,0,L"BAR\0", +PP_BARVERT,0,L"BARVERT\0", +PP_CHUNK,0,L"CHUNK\0", +PP_CHUNKVERT,0,L"CHUNKVERT\0", +0,0,L"\0" +END + +REBAR RCDATA +BEGIN +RP_GRIPPER,0,L"GRIPPER\0", +RP_GRIPPERVERT,0,L"GRIPPERVERT\0", +RP_BAND,0,L"BAND\0", +RP_CHEVRON,0,L"CHEVRON\0", +RP_CHEVRON,CHEVS_NORMAL,L"NORMAL\0", +RP_CHEVRON,CHEVS_HOT,L"HOT\0", +RP_CHEVRON,CHEVS_PRESSED,L"PRESSED\0", +RP_CHEVRONVERT,0,L"CHEVRONVERT\0", +0,0,L"\0" +END + +SCROLLBAR RCDATA +BEGIN +SBP_ARROWBTN,0,L"ARROWBTN\0", +SBP_ARROWBTN,ABS_UPNORMAL,L"UPNORMAL\0", +SBP_ARROWBTN,ABS_UPHOT,L"UPHOT\0", +SBP_ARROWBTN,ABS_UPPRESSED,L"UPPRESSED\0", +SBP_ARROWBTN,ABS_UPDISABLED,L"UPDISABLED\0", +SBP_ARROWBTN,ABS_DOWNNORMAL,L"DOWNNORMAL\0", +SBP_ARROWBTN,ABS_DOWNHOT,L"DOWNHOT\0", +SBP_ARROWBTN,ABS_DOWNPRESSED,L"DOWNPRESSED\0", +SBP_ARROWBTN,ABS_DOWNDISABLED,L"DOWNDISABLED\0", +SBP_ARROWBTN,ABS_LEFTNORMAL,L"LEFTNORMAL\0", +SBP_ARROWBTN,ABS_LEFTHOT,L"LEFTHOT\0", +SBP_ARROWBTN,ABS_LEFTPRESSED,L"LEFTPRESSED\0", +SBP_ARROWBTN,ABS_LEFTDISABLED,L"LEFTDISABLED\0", +SBP_ARROWBTN,ABS_RIGHTNORMAL,L"RIGHTNORMAL\0", +SBP_ARROWBTN,ABS_RIGHTHOT,L"RIGHTHOT\0", +SBP_ARROWBTN,ABS_RIGHTPRESSED,L"RIGHTPRESSED\0", +SBP_ARROWBTN,ABS_RIGHTDISABLED,L"RIGHTDISABLED\0", +SBP_THUMBBTNHORZ,0,L"THUMBBTNHORZ\0", +SBP_THUMBBTNHORZ,SCRBS_NORMAL,L"NORMAL\0", +SBP_THUMBBTNHORZ,SCRBS_HOT,L"HOT\0", +SBP_THUMBBTNHORZ,SCRBS_PRESSED,L"PRESSED\0", +SBP_THUMBBTNHORZ,SCRBS_DISABLED,L"DISABLED\0", +SBP_THUMBBTNVERT,0,L"THUMBBTNVERT\0", +SBP_THUMBBTNVERT,SCRBS_NORMAL,L"NORMAL\0", +SBP_THUMBBTNVERT,SCRBS_HOT,L"HOT\0", +SBP_THUMBBTNVERT,SCRBS_PRESSED,L"PRESSED\0", +SBP_THUMBBTNVERT,SCRBS_DISABLED,L"DISABLED\0", +SBP_LOWERTRACKHORZ,0,L"LOWERTRACKHORZ\0", +SBP_LOWERTRACKHORZ,SCRBS_NORMAL,L"NORMAL\0", +SBP_LOWERTRACKHORZ,SCRBS_HOT,L"HOT\0", +SBP_LOWERTRACKHORZ,SCRBS_PRESSED,L"PRESSED\0", +SBP_LOWERTRACKHORZ,SCRBS_DISABLED,L"DISABLED\0", +SBP_UPPERTRACKHORZ,0,L"UPPERTRACKHORZ\0", +SBP_UPPERTRACKHORZ,SCRBS_NORMAL,L"NORMAL\0", +SBP_UPPERTRACKHORZ,SCRBS_HOT,L"HOT\0", +SBP_UPPERTRACKHORZ,SCRBS_PRESSED,L"PRESSED\0", +SBP_UPPERTRACKHORZ,SCRBS_DISABLED,L"DISABLED\0", +SBP_LOWERTRACKVERT,0,L"LOWERTRACKVERT\0", +SBP_LOWERTRACKVERT,SCRBS_NORMAL,L"NORMAL\0", +SBP_LOWERTRACKVERT,SCRBS_HOT,L"HOT\0", +SBP_LOWERTRACKVERT,SCRBS_PRESSED,L"PRESSED\0", +SBP_LOWERTRACKVERT,SCRBS_DISABLED,L"DISABLED\0", +SBP_UPPERTRACKVERT,0,L"UPPERTRACKVERT\0", +SBP_UPPERTRACKVERT,SCRBS_NORMAL,L"NORMAL\0", +SBP_UPPERTRACKVERT,SCRBS_HOT,L"HOT\0", +SBP_UPPERTRACKVERT,SCRBS_PRESSED,L"PRESSED\0", +SBP_UPPERTRACKVERT,SCRBS_DISABLED,L"DISABLED\0", +SBP_GRIPPERHORZ,0,L"GRIPPERHORZ\0", +SBP_GRIPPERVERT,0,L"GRIPPERVERT\0", +SBP_SIZEBOX,0,L"SIZEBOX\0", +SBP_SIZEBOX,SZB_RIGHTALIGN,L"RIGHTALIGN\0", +SBP_SIZEBOX,SZB_LEFTALIGN,L"LEFTALIGN\0", +0,0,L"\0" +END + +SPIN RCDATA +BEGIN +SPNP_UP,0,L"UP\0", +SPNP_UP,UPS_NORMAL,L"NORMAL\0", +SPNP_UP,UPS_HOT,L"HOT\0", +SPNP_UP,UPS_PRESSED,L"PRESSED\0", +SPNP_UP,UPS_DISABLED,L"DISABLED\0", +SPNP_DOWN,0,L"DOWN\0", +SPNP_DOWN,DNS_NORMAL,L"NORMAL\0", +SPNP_DOWN,DNS_HOT,L"HOT\0", +SPNP_DOWN,DNS_PRESSED,L"PRESSED\0", +SPNP_DOWN,DNS_DISABLED,L"DISABLED\0", +SPNP_UPHORZ,0,L"UPHORZ\0", +SPNP_UPHORZ,UPHZS_NORMAL,L"NORMAL\0", +SPNP_UPHORZ,UPHZS_HOT,L"HOT\0", +SPNP_UPHORZ,UPHZS_PRESSED,L"PRESSED\0", +SPNP_UPHORZ,UPHZS_DISABLED,L"DISABLED\0", +SPNP_DOWNHORZ,0,L"DOWNHORZ\0", +SPNP_DOWNHORZ,DNHZS_NORMAL,L"NORMAL\0", +SPNP_DOWNHORZ,DNHZS_HOT,L"HOT\0", +SPNP_DOWNHORZ,DNHZS_PRESSED,L"PRESSED\0", +SPNP_DOWNHORZ,DNHZS_DISABLED,L"DISABLED\0", +0,0,L"\0" +END + +STARTPANEL RCDATA +BEGIN +SPP_USERPANE,0,L"USERPANE\0", +SPP_MOREPROGRAMS,0,L"MOREPROGRAMS\0", +SPP_MOREPROGRAMSARROW,0,L"MOREPROGRAMSARROW\0", +SPP_MOREPROGRAMSARROW,SPS_NORMAL,L"NORMAL\0", +SPP_MOREPROGRAMSARROW,SPS_HOT,L"HOT\0", +SPP_MOREPROGRAMSARROW,SPS_PRESSED,L"PRESSED\0", +SPP_PROGLIST,0,L"PROGLIST\0", +SPP_PROGLISTSEPARATOR,0,L"PROGLISTSEPARATOR\0", +SPP_PLACESLIST,0,L"PLACESLIST\0", +SPP_PLACESLISTSEPARATOR,0,L"PLACESLISTSEPARATOR\0", +SPP_LOGOFF,0,L"LOGOFF\0", +SPP_LOGOFFBUTTONS,0,L"LOGOFFBUTTONS\0", +SPP_LOGOFFBUTTONS,SPLS_NORMAL,L"NORMAL\0", +SPP_LOGOFFBUTTONS,SPLS_HOT,L"HOT\0", +SPP_LOGOFFBUTTONS,SPLS_PRESSED,L"PRESSED\0", +SPP_USERPICTURE,0,L"USERPICTURE\0", +SPP_PREVIEW,0,L"PREVIEW\0", +0,0,L"\0" +END + +STATUS RCDATA +BEGIN +SP_PANE,0,L"PANE\0", +SP_GRIPPERPANE,0,L"GRIPPERPANE\0", +SP_GRIPPER,0,L"GRIPPER\0", +0,0,L"\0" +END + +TAB RCDATA +BEGIN +TABP_TABITEM,0,L"TABITEM\0", +TABP_TABITEM,TIS_NORMAL,L"NORMAL\0", +TABP_TABITEM,TIS_HOT,L"HOT\0", +TABP_TABITEM,TIS_SELECTED,L"SELECTED\0", +TABP_TABITEM,TIS_DISABLED,L"DISABLED\0", +TABP_TABITEM,TIS_FOCUSED,L"FOCUSED\0", +TABP_TABITEMLEFTEDGE,0,L"TABITEMLEFTEDGE\0", +TABP_TABITEMLEFTEDGE,TILES_NORMAL,L"NORMAL\0", +TABP_TABITEMLEFTEDGE,TILES_HOT,L"HOT\0", +TABP_TABITEMLEFTEDGE,TILES_SELECTED,L"SELECTED\0", +TABP_TABITEMLEFTEDGE,TILES_DISABLED,L"DISABLED\0", +TABP_TABITEMLEFTEDGE,TILES_FOCUSED,L"FOCUSED\0", +TABP_TABITEMRIGHTEDGE,0,L"TABITEMRIGHTEDGE\0", +TABP_TABITEMRIGHTEDGE,TIRES_NORMAL,L"NORMAL\0", +TABP_TABITEMRIGHTEDGE,TIRES_HOT,L"HOT\0", +TABP_TABITEMRIGHTEDGE,TIRES_SELECTED,L"SELECTED\0", +TABP_TABITEMRIGHTEDGE,TIRES_DISABLED,L"DISABLED\0", +TABP_TABITEMRIGHTEDGE,TIRES_FOCUSED,L"FOCUSED\0", +TABP_TABITEMBOTHEDGE,0,L"TABITEMBOTHEDGE\0", +TABP_TABITEMBOTHEDGE,TIBES_NORMAL,L"NORMAL\0", +TABP_TABITEMBOTHEDGE,TIBES_HOT,L"HOT\0", +TABP_TABITEMBOTHEDGE,TIBES_SELECTED,L"SELECTED\0", +TABP_TABITEMBOTHEDGE,TIBES_DISABLED,L"DISABLED\0", +TABP_TABITEMBOTHEDGE,TIBES_FOCUSED,L"FOCUSED\0", +TABP_TOPTABITEM,0,L"TOPTABITEM\0", +TABP_TOPTABITEM,TTIS_NORMAL,L"NORMAL\0", +TABP_TOPTABITEM,TTIS_HOT,L"HOT\0", +TABP_TOPTABITEM,TTIS_SELECTED,L"SELECTED\0", +TABP_TOPTABITEM,TTIS_DISABLED,L"DISABLED\0", +TABP_TOPTABITEM,TTIS_FOCUSED,L"FOCUSED\0", +TABP_TOPTABITEMLEFTEDGE,0,L"TOPTABITEMLEFTEDGE\0", +TABP_TOPTABITEMLEFTEDGE,TTILES_NORMAL,L"NORMAL\0", +TABP_TOPTABITEMLEFTEDGE,TTILES_HOT,L"HOT\0", +TABP_TOPTABITEMLEFTEDGE,TTILES_SELECTED,L"SELECTED\0", +TABP_TOPTABITEMLEFTEDGE,TTILES_DISABLED,L"DISABLED\0", +TABP_TOPTABITEMLEFTEDGE,TTILES_FOCUSED,L"FOCUSED\0", +TABP_TOPTABITEMRIGHTEDGE,0,L"TOPTABITEMRIGHTEDGE\0", +TABP_TOPTABITEMRIGHTEDGE,TTIRES_NORMAL,L"NORMAL\0", +TABP_TOPTABITEMRIGHTEDGE,TTIRES_HOT,L"HOT\0", +TABP_TOPTABITEMRIGHTEDGE,TTIRES_SELECTED,L"SELECTED\0", +TABP_TOPTABITEMRIGHTEDGE,TTIRES_DISABLED,L"DISABLED\0", +TABP_TOPTABITEMRIGHTEDGE,TTIRES_FOCUSED,L"FOCUSED\0", +TABP_TOPTABITEMBOTHEDGE,0,L"TOPTABITEMBOTHEDGE\0", +TABP_TOPTABITEMBOTHEDGE,TTIBES_NORMAL,L"NORMAL\0", +TABP_TOPTABITEMBOTHEDGE,TTIBES_HOT,L"HOT\0", +TABP_TOPTABITEMBOTHEDGE,TTIBES_SELECTED,L"SELECTED\0", +TABP_TOPTABITEMBOTHEDGE,TTIBES_DISABLED,L"DISABLED\0", +TABP_TOPTABITEMBOTHEDGE,TTIBES_FOCUSED,L"FOCUSED\0", +TABP_PANE,0,L"PANE\0", +TABP_BODY,0,L"BODY\0", +0,0,L"\0" +END + +TASKBAND RCDATA +BEGIN +TDP_GROUPCOUNT,0,L"GROUPCOUNT\0", +TDP_FLASHBUTTON,0,L"FLASHBUTTON\0", +TDP_FLASHBUTTONGROUPMENU,0,L"FLASHBUTTONGROUPMENU\0", +0,0,L"\0" +END + +TASKBAR RCDATA +BEGIN +TBP_BACKGROUNDBOTTOM,0,L"BACKGROUNDBOTTOM\0", +TBP_BACKGROUNDRIGHT,0,L"BACKGROUNDRIGHT\0", +TBP_BACKGROUNDTOP,0,L"BACKGROUNDTOP\0", +TBP_BACKGROUNDLEFT,0,L"BACKGROUNDLEFT\0", +TBP_SIZINGBARBOTTOM,0,L"SIZINGBARBOTTOM\0", +TBP_SIZINGBARRIGHT,0,L"SIZINGBARRIGHT\0", +TBP_SIZINGBARTOP,0,L"SIZINGBARTOP\0", +TBP_SIZINGBARLEFT,0,L"SIZINGBARLEFT\0", +0,0,L"\0" +END + +TOOLBAR RCDATA +BEGIN +TP_BUTTON,0,L"BUTTON\0", +TP_BUTTON,TS_NORMAL,L"NORMAL\0", +TP_BUTTON,TS_HOT,L"HOT\0", +TP_BUTTON,TS_PRESSED,L"PRESSED\0", +TP_BUTTON,TS_DISABLED,L"DISABLED\0", +TP_BUTTON,TS_CHECKED,L"CHECKED\0", +TP_BUTTON,TS_HOTCHECKED,L"HOTCHECKED\0", +TP_DROPDOWNBUTTON,0,L"DROPDOWNBUTTON\0", +TP_DROPDOWNBUTTON,TS_NORMAL,L"NORMAL\0", +TP_DROPDOWNBUTTON,TS_HOT,L"HOT\0", +TP_DROPDOWNBUTTON,TS_PRESSED,L"PRESSED\0", +TP_DROPDOWNBUTTON,TS_DISABLED,L"DISABLED\0", +TP_DROPDOWNBUTTON,TS_CHECKED,L"CHECKED\0", +TP_DROPDOWNBUTTON,TS_HOTCHECKED,L"HOTCHECKED\0", +TP_SPLITBUTTON,0,L"SPLITBUTTON\0", +TP_SPLITBUTTON,TS_NORMAL,L"NORMAL\0", +TP_SPLITBUTTON,TS_HOT,L"HOT\0", +TP_SPLITBUTTON,TS_PRESSED,L"PRESSED\0", +TP_SPLITBUTTON,TS_DISABLED,L"DISABLED\0", +TP_SPLITBUTTON,TS_CHECKED,L"CHECKED\0", +TP_SPLITBUTTON,TS_HOTCHECKED,L"HOTCHECKED\0", +TP_SPLITBUTTONDROPDOWN,0,L"SPLITBUTTONDROPDOWN\0", +TP_SPLITBUTTONDROPDOWN,TS_NORMAL,L"NORMAL\0", +TP_SPLITBUTTONDROPDOWN,TS_HOT,L"HOT\0", +TP_SPLITBUTTONDROPDOWN,TS_PRESSED,L"PRESSED\0", +TP_SPLITBUTTONDROPDOWN,TS_DISABLED,L"DISABLED\0", +TP_SPLITBUTTONDROPDOWN,TS_CHECKED,L"CHECKED\0", +TP_SPLITBUTTONDROPDOWN,TS_HOTCHECKED,L"HOTCHECKED\0", +TP_SEPARATOR,0,L"SEPARATOR\0", +TP_SEPARATOR,TS_NORMAL,L"NORMAL\0", +TP_SEPARATOR,TS_HOT,L"HOT\0", +TP_SEPARATOR,TS_PRESSED,L"PRESSED\0", +TP_SEPARATOR,TS_DISABLED,L"DISABLED\0", +TP_SEPARATOR,TS_CHECKED,L"CHECKED\0", +TP_SEPARATOR,TS_HOTCHECKED,L"HOTCHECKED\0", +TP_SEPARATORVERT,0,L"SEPARATORVERT\0", +TP_SEPARATORVERT,TS_NORMAL,L"NORMAL\0", +TP_SEPARATORVERT,TS_HOT,L"HOT\0", +TP_SEPARATORVERT,TS_PRESSED,L"PRESSED\0", +TP_SEPARATORVERT,TS_DISABLED,L"DISABLED\0", +TP_SEPARATORVERT,TS_CHECKED,L"CHECKED\0", +TP_SEPARATORVERT,TS_HOTCHECKED,L"HOTCHECKED\0", +0,0,L"\0" +END + +TOOLTIP RCDATA +BEGIN +TTP_STANDARD,0,L"STANDARD\0", +TTP_STANDARD,TTSS_NORMAL,L"NORMAL\0", +TTP_STANDARD,TTSS_LINK,L"LINK\0", +TTP_STANDARDTITLE,0,L"STANDARDTITLE\0", +TTP_STANDARDTITLE,TTSS_NORMAL,L"NORMAL\0", +TTP_STANDARDTITLE,TTSS_LINK,L"LINK\0", +TTP_BALLOON,0,L"BALLOON\0", +TTP_BALLOON,TTBS_NORMAL,L"NORMAL\0", +TTP_BALLOON,TTBS_LINK,L"LINK\0", +TTP_BALLOONTITLE,0,L"BALLOONTITLE\0", +TTP_BALLOONTITLE,TTBS_NORMAL,L"NORMAL\0", +TTP_BALLOONTITLE,TTBS_LINK,L"LINK\0", +TTP_CLOSE,0,L"CLOSE\0", +TTP_CLOSE,TTCS_NORMAL,L"NORMAL\0", +TTP_CLOSE,TTCS_HOT,L"HOT\0", +TTP_CLOSE,TTCS_PRESSED,L"PRESSED\0", +0,0,L"\0" +END + +TRACKBAR RCDATA +BEGIN +TKP_TRACK,0,L"TRACK\0", +TKP_TRACK,TRS_NORMAL,L"NORMAL\0", +TKP_TRACKVERT,0,L"TRACKVERT\0", +TKP_TRACKVERT,TRVS_NORMAL,L"NORMAL\0", +TKP_THUMB,0,L"THUMB\0", +TKP_THUMB,TUS_NORMAL,L"NORMAL\0", +TKP_THUMB,TUS_HOT,L"HOT\0", +TKP_THUMB,TUS_PRESSED,L"PRESSED\0", +TKP_THUMB,TUS_FOCUSED,L"FOCUSED\0", +TKP_THUMB,TUS_DISABLED,L"DISABLED\0", +TKP_THUMBBOTTOM,0,L"THUMBBOTTOM\0", +TKP_THUMBBOTTOM,TUBS_NORMAL,L"NORMAL\0", +TKP_THUMBBOTTOM,TUBS_HOT,L"HOT\0", +TKP_THUMBBOTTOM,TUBS_PRESSED,L"PRESSED\0", +TKP_THUMBBOTTOM,TUBS_FOCUSED,L"FOCUSED\0", +TKP_THUMBBOTTOM,TUBS_DISABLED,L"DISABLED\0", +TKP_THUMBTOP,0,L"THUMBTOP\0", +TKP_THUMBTOP,TUTS_NORMAL,L"NORMAL\0", +TKP_THUMBTOP,TUTS_HOT,L"HOT\0", +TKP_THUMBTOP,TUTS_PRESSED,L"PRESSED\0", +TKP_THUMBTOP,TUTS_FOCUSED,L"FOCUSED\0", +TKP_THUMBTOP,TUTS_DISABLED,L"DISABLED\0", +TKP_THUMBVERT,0,L"THUMBVERT\0", +TKP_THUMBVERT,TUVS_NORMAL,L"NORMAL\0", +TKP_THUMBVERT,TUVS_HOT,L"HOT\0", +TKP_THUMBVERT,TUVS_PRESSED,L"PRESSED\0", +TKP_THUMBVERT,TUVS_FOCUSED,L"FOCUSED\0", +TKP_THUMBVERT,TUVS_DISABLED,L"DISABLED\0", +TKP_THUMBLEFT,0,L"THUMBLEFT\0", +TKP_THUMBLEFT,TUVLS_NORMAL,L"NORMAL\0", +TKP_THUMBLEFT,TUVLS_HOT,L"HOT\0", +TKP_THUMBLEFT,TUVLS_PRESSED,L"PRESSED\0", +TKP_THUMBLEFT,TUVLS_FOCUSED,L"FOCUSED\0", +TKP_THUMBLEFT,TUVLS_DISABLED,L"DISABLED\0", +TKP_THUMBRIGHT,0,L"THUMBRIGHT\0", +TKP_THUMBRIGHT,TUVRS_NORMAL,L"NORMAL\0", +TKP_THUMBRIGHT,TUVRS_HOT,L"HOT\0", +TKP_THUMBRIGHT,TUVRS_PRESSED,L"PRESSED\0", +TKP_THUMBRIGHT,TUVRS_FOCUSED,L"FOCUSED\0", +TKP_THUMBRIGHT,TUVRS_DISABLED,L"DISABLED\0", +TKP_TICS,0,L"TICS\0", +TKP_TICS,TSS_NORMAL,L"NORMAL\0", +TKP_TICSVERT,0,L"TICSVERT\0", +TKP_TICSVERT,TSVS_NORMAL,L"NORMAL\0", +0,0,L"\0" +END + +TRAYNOTIFY RCDATA +BEGIN +TNP_BACKGROUND,0,L"BACKGROUND\0", +TNP_ANIMBACKGROUND,0,L"ANIMBACKGROUND\0", +0,0,L"\0" +END + +TREEVIEW RCDATA +BEGIN +TVP_TREEITEM,0,L"TREEITEM\0", +TVP_TREEITEM,TREIS_NORMAL,L"NORMAL\0", +TVP_TREEITEM,TREIS_HOT,L"HOT\0", +TVP_TREEITEM,TREIS_SELECTED,L"SELECTED\0", +TVP_TREEITEM,TREIS_DISABLED,L"DISABLED\0", +TVP_TREEITEM,TREIS_SELECTEDNOTFOCUS,L"SELECTEDNOTFOCUS\0", +TVP_GLYPH,0,L"GLYPH\0", +TVP_GLYPH,GLPS_CLOSED,L"CLOSED\0", +TVP_GLYPH,GLPS_OPENED,L"OPENED\0", +TVP_BRANCH,0,L"BRANCH\0", +0,0,L"\0" +END + +WINDOW RCDATA +BEGIN +WP_CAPTION,0,L"CAPTION\0", +WP_CAPTION,CS_ACTIVE,L"ACTIVE\0", +WP_CAPTION,CS_INACTIVE,L"INACTIVE\0", +WP_CAPTION,CS_DISABLED,L"DISABLED\0", +WP_SMALLCAPTION,0,L"SMALLCAPTION\0", +WP_SMALLCAPTION,CS_ACTIVE,L"ACTIVE\0", +WP_SMALLCAPTION,CS_INACTIVE,L"INACTIVE\0", +WP_SMALLCAPTION,CS_DISABLED,L"DISABLED\0", +WP_MINCAPTION,0,L"MINCAPTION\0", +WP_MINCAPTION,MNCS_ACTIVE,L"ACTIVE\0", +WP_MINCAPTION,MNCS_INACTIVE,L"INACTIVE\0", +WP_MINCAPTION,MNCS_DISABLED,L"DISABLED\0", +WP_SMALLMINCAPTION,0,L"SMALLMINCAPTION\0", +WP_SMALLMINCAPTION,MNCS_ACTIVE,L"ACTIVE\0", +WP_SMALLMINCAPTION,MNCS_INACTIVE,L"INACTIVE\0", +WP_SMALLMINCAPTION,MNCS_DISABLED,L"DISABLED\0", +WP_MAXCAPTION,0,L"MAXCAPTION\0", +WP_MAXCAPTION,MXCS_ACTIVE,L"ACTIVE\0", +WP_MAXCAPTION,MXCS_INACTIVE,L"INACTIVE\0", +WP_MAXCAPTION,MXCS_DISABLED,L"DISABLED\0", +WP_SMALLMAXCAPTION,0,L"SMALLMAXCAPTION\0", +WP_SMALLMAXCAPTION,MXCS_ACTIVE,L"ACTIVE\0", +WP_SMALLMAXCAPTION,MXCS_INACTIVE,L"INACTIVE\0", +WP_SMALLMAXCAPTION,MXCS_DISABLED,L"DISABLED\0", +WP_FRAMELEFT,0,L"FRAMELEFT\0", +WP_FRAMELEFT,FS_ACTIVE,L"ACTIVE\0", +WP_FRAMELEFT,FS_INACTIVE,L"INACTIVE\0", +WP_FRAMERIGHT,0,L"FRAMERIGHT\0", +WP_FRAMERIGHT,FS_ACTIVE,L"ACTIVE\0", +WP_FRAMERIGHT,FS_INACTIVE,L"INACTIVE\0", +WP_FRAMEBOTTOM,0,L"FRAMEBOTTOM\0", +WP_FRAMEBOTTOM,FS_ACTIVE,L"ACTIVE\0", +WP_FRAMEBOTTOM,FS_INACTIVE,L"INACTIVE\0", +WP_SMALLFRAMELEFT,0,L"SMALLFRAMELEFT\0", +WP_SMALLFRAMELEFT,FS_ACTIVE,L"ACTIVE\0", +WP_SMALLFRAMELEFT,FS_INACTIVE,L"INACTIVE\0", +WP_SMALLFRAMERIGHT,0,L"SMALLFRAMERIGHT\0", +WP_SMALLFRAMERIGHT,FS_ACTIVE,L"ACTIVE\0", +WP_SMALLFRAMERIGHT,FS_INACTIVE,L"INACTIVE\0", +WP_SMALLFRAMEBOTTOM,0,L"SMALLFRAMEBOTTOM\0", +WP_SMALLFRAMEBOTTOM,FS_ACTIVE,L"ACTIVE\0", +WP_SMALLFRAMEBOTTOM,FS_INACTIVE,L"INACTIVE\0", +WP_SYSBUTTON,0,L"SYSBUTTON\0", +WP_SYSBUTTON,SBS_NORMAL,L"NORMAL\0", +WP_SYSBUTTON,SBS_HOT,L"HOT\0", +WP_SYSBUTTON,SBS_PUSHED,L"PUSHED\0", +WP_SYSBUTTON,SBS_DISABLED,L"DISABLED\0", +WP_MDISYSBUTTON,0,L"MDISYSBUTTON\0", +WP_MDISYSBUTTON,SBS_NORMAL,L"NORMAL\0", +WP_MDISYSBUTTON,SBS_HOT,L"HOT\0", +WP_MDISYSBUTTON,SBS_PUSHED,L"PUSHED\0", +WP_MDISYSBUTTON,SBS_DISABLED,L"DISABLED\0", +WP_MINBUTTON,0,L"MINBUTTON\0", +WP_MINBUTTON,MINBS_NORMAL,L"NORMAL\0", +WP_MINBUTTON,MINBS_HOT,L"HOT\0", +WP_MINBUTTON,MINBS_PUSHED,L"PUSHED\0", +WP_MINBUTTON,MINBS_DISABLED,L"DISABLED\0", +WP_MDIMINBUTTON,0,L"MDIMINBUTTON\0", +WP_MDIMINBUTTON,MINBS_NORMAL,L"NORMAL\0", +WP_MDIMINBUTTON,MINBS_HOT,L"HOT\0", +WP_MDIMINBUTTON,MINBS_PUSHED,L"PUSHED\0", +WP_MDIMINBUTTON,MINBS_DISABLED,L"DISABLED\0", +WP_MAXBUTTON,0,L"MAXBUTTON\0", +WP_MAXBUTTON,MAXBS_NORMAL,L"NORMAL\0", +WP_MAXBUTTON,MAXBS_HOT,L"HOT\0", +WP_MAXBUTTON,MAXBS_PUSHED,L"PUSHED\0", +WP_MAXBUTTON,MAXBS_DISABLED,L"DISABLED\0", +WP_CLOSEBUTTON,0,L"CLOSEBUTTON\0", +WP_CLOSEBUTTON,CBS_NORMAL,L"NORMAL\0", +WP_CLOSEBUTTON,CBS_HOT,L"HOT\0", +WP_CLOSEBUTTON,CBS_PUSHED,L"PUSHED\0", +WP_CLOSEBUTTON,CBS_DISABLED,L"DISABLED\0", +WP_SMALLCLOSEBUTTON,0,L"SMALLCLOSEBUTTON\0", +WP_SMALLCLOSEBUTTON,CBS_NORMAL,L"NORMAL\0", +WP_SMALLCLOSEBUTTON,CBS_HOT,L"HOT\0", +WP_SMALLCLOSEBUTTON,CBS_PUSHED,L"PUSHED\0", +WP_SMALLCLOSEBUTTON,CBS_DISABLED,L"DISABLED\0", +WP_MDICLOSEBUTTON,0,L"MDICLOSEBUTTON\0", +WP_MDICLOSEBUTTON,CBS_NORMAL,L"NORMAL\0", +WP_MDICLOSEBUTTON,CBS_HOT,L"HOT\0", +WP_MDICLOSEBUTTON,CBS_PUSHED,L"PUSHED\0", +WP_MDICLOSEBUTTON,CBS_DISABLED,L"DISABLED\0", +WP_RESTOREBUTTON,0,L"RESTOREBUTTON\0", +WP_RESTOREBUTTON,RBS_NORMAL,L"NORMAL\0", +WP_RESTOREBUTTON,RBS_HOT,L"HOT\0", +WP_RESTOREBUTTON,RBS_PUSHED,L"PUSHED\0", +WP_RESTOREBUTTON,RBS_DISABLED,L"DISABLED\0", +WP_MDIRESTOREBUTTON,0,L"MDIRESTOREBUTTON\0", +WP_MDIRESTOREBUTTON,RBS_NORMAL,L"NORMAL\0", +WP_MDIRESTOREBUTTON,RBS_HOT,L"HOT\0", +WP_MDIRESTOREBUTTON,RBS_PUSHED,L"PUSHED\0", +WP_MDIRESTOREBUTTON,RBS_DISABLED,L"DISABLED\0", +WP_HELPBUTTON,0,L"HELPBUTTON\0", +WP_HELPBUTTON,HBS_NORMAL,L"NORMAL\0", +WP_HELPBUTTON,HBS_HOT,L"HOT\0", +WP_HELPBUTTON,HBS_PUSHED,L"PUSHED\0", +WP_HELPBUTTON,HBS_DISABLED,L"DISABLED\0", +WP_MDIHELPBUTTON,0,L"MDIHELPBUTTON\0", +WP_MDIHELPBUTTON,HBS_NORMAL,L"NORMAL\0", +WP_MDIHELPBUTTON,HBS_HOT,L"HOT\0", +WP_MDIHELPBUTTON,HBS_PUSHED,L"PUSHED\0", +WP_MDIHELPBUTTON,HBS_DISABLED,L"DISABLED\0", +WP_HORZSCROLL,0,L"HORZSCROLL\0", +WP_HORZSCROLL,HSS_NORMAL,L"NORMAL\0", +WP_HORZSCROLL,HSS_HOT,L"HOT\0", +WP_HORZSCROLL,HSS_PUSHED,L"PUSHED\0", +WP_HORZSCROLL,HSS_DISABLED,L"DISABLED\0", +WP_HORZTHUMB,0,L"HORZTHUMB\0", +WP_HORZTHUMB,HTS_NORMAL,L"NORMAL\0", +WP_HORZTHUMB,HTS_HOT,L"HOT\0", +WP_HORZTHUMB,HTS_PUSHED,L"PUSHED\0", +WP_HORZTHUMB,HTS_DISABLED,L"DISABLED\0", +WP_VERTSCROLL,0,L"VERTSCROLL\0", +WP_VERTSCROLL,VSS_NORMAL,L"NORMAL\0", +WP_VERTSCROLL,VSS_HOT,L"HOT\0", +WP_VERTSCROLL,VSS_PUSHED,L"PUSHED\0", +WP_VERTSCROLL,VSS_DISABLED,L"DISABLED\0", +WP_VERTTHUMB,0,L"VERTTHUMB\0", +WP_VERTTHUMB,VTS_NORMAL,L"NORMAL\0", +WP_VERTTHUMB,VTS_HOT,L"HOT\0", +WP_VERTTHUMB,VTS_PUSHED,L"PUSHED\0", +WP_VERTTHUMB,VTS_DISABLED,L"DISABLED\0", +WP_DIALOG,0,L"DIALOG\0", +WP_CAPTIONSIZINGTEMPLATE,0,L"CAPTIONSIZINGTEMPLATE\0", +WP_SMALLCAPTIONSIZINGTEMPLATE,0,L"SMALLCAPTIONSIZINGTEMPLATE\0", +WP_FRAMELEFTSIZINGTEMPLATE,0,L"FRAMELEFTSIZINGTEMPLATE\0", +WP_SMALLFRAMELEFTSIZINGTEMPLATE,0,L"SMALLFRAMELEFTSIZINGTEMPLATE\0", +WP_FRAMERIGHTSIZINGTEMPLATE,0,L"FRAMERIGHTSIZINGTEMPLATE\0", +WP_SMALLFRAMERIGHTSIZINGTEMPLATE,0,L"SMALLFRAMERIGHTSIZINGTEMPLATE\0", +WP_FRAMEBOTTOMSIZINGTEMPLATE,0,L"FRAMEBOTTOMSIZINGTEMPLATE\0", +WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE,0,L"SMALLFRAMEBOTTOMSIZINGTEMPLATE\0", +0,0,L"\0" +END --- /dev/null 1969-12-31 19:00:00.000000000 -0500 +++ dlls/uxtheme/uxini.c 2004-01-10 20:06:16.487612488 -0500 @@ -0,0 +1,310 @@ +/* + * Win32 5.1 uxtheme ini file processing + * + * Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "config.h" + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winnls.h" + +#include "uxthemedll.h" +#include "msstyles.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(uxtheme); + +/*********************************************************************** + * Defines and global variables + */ + +WCHAR szTextFileResource[] = { + 'T','E','X','T','F','I','L','E','\0' +}; + +/***********************************************************************/ + +/********************************************************************** + * UXINI_LoadINI + * + * Load a theme INI file out of resources from the specified + * theme + * + * PARAMS + * tf Theme to load INI file out of resources + * lpName Resource name of the INI file + * + * RETURNS + * INI file, or NULL if not found + */ +PUXINI_FILE UXINI_LoadINI(PTHEME_FILE tf, LPCWSTR lpName) { + HRSRC hrsc; + LPCWSTR lpThemesIni = NULL; + PUXINI_FILE uf; + DWORD dwIniSize; + + if((hrsc = FindResourceW(tf->hTheme, lpName, szTextFileResource))) { + if(!(lpThemesIni = (LPCWSTR)LoadResource(tf->hTheme, hrsc))) { + TRACE("%s resource not found\n", debugstr_w(lpName)); + return NULL; + } + } + + dwIniSize = SizeofResource(tf->hTheme, hrsc) / sizeof(WCHAR); + uf = HeapAlloc(GetProcessHeap(), 0, sizeof(UXINI_FILE)); + uf->lpIni = lpThemesIni; + uf->lpCurLoc = lpThemesIni; + uf->lpEnd = lpThemesIni + dwIniSize; + return uf; +} + +/********************************************************************** + * UXINI_CloseINI + * + * Close an open theme INI file + * + * PARAMS + * uf Theme INI file to close + */ +void UXINI_CloseINI(PUXINI_FILE uf) +{ + HeapFree(GetProcessHeap(), 0, uf); +} + +/********************************************************************** + * UXINI_ResetINI + * + * Reset the current pointer into INI file to the beginning of the file + * + * PARAMS + * uf Theme INI file to reset + */ +void UXINI_ResetINI(PUXINI_FILE uf) +{ + uf->lpCurLoc = uf->lpIni; +} + +/********************************************************************** + * UXINI_eof + * + * Determines if we are at the end of the INI file + * + * PARAMS + * uf Theme INI file to test + */ +static inline BOOL UXINI_eof(PUXINI_FILE uf) +{ + return uf->lpCurLoc >= uf->lpEnd; +} + +/********************************************************************** + * UXINI_isspace + * + * Check if a character is a space character + * + * PARAMS + * c Character to test + */ +static inline BOOL UXINI_isspace(WCHAR c) +{ + if (isspace(c)) return TRUE; + if (c=='\r') return TRUE; + return FALSE; +} + +/********************************************************************** + * UXINI_GetNextLine + * + * Get the next line in the INI file, non NULL terminated + * removes whitespace at beginning and end of line, and removes comments + * + * PARAMS + * uf INI file to retrieve next line + * dwLen Location to store pointer to line length + * + * RETURNS + * The section name, non NULL terminated + */ +LPCWSTR UXINI_GetNextLine(PUXINI_FILE uf, DWORD *dwLen) +{ + LPCWSTR lpLineEnd; + LPCWSTR lpLineStart; + DWORD len; + do { + if(UXINI_eof(uf)) return NULL; + /* Skip whitespace and empty lines */ + while(!UXINI_eof(uf) && (UXINI_isspace(*uf->lpCurLoc) || *uf->lpCurLoc == '\n')) uf->lpCurLoc++; + lpLineStart = uf->lpCurLoc; + lpLineEnd = uf->lpCurLoc; + while(!UXINI_eof(uf) && *uf->lpCurLoc != '\n' && *uf->lpCurLoc != ';') lpLineEnd = uf->lpCurLoc++; + /* If comment was found, skip the rest of the line */ + if(*uf->lpCurLoc == ';') + while(!UXINI_eof(uf) && *uf->lpCurLoc != '\n') uf->lpCurLoc++; + len = (lpLineEnd - lpLineStart); + if(len == 0) + return NULL; + } while(*lpLineStart == ';'); + /* Remove whitespace from end of line */ + while(UXINI_isspace(lpLineStart[len-1])) len--; + *dwLen = len; + + return lpLineStart; +} + +void UXINI_UnGetToLine(PUXINI_FILE uf, LPCWSTR lpLine) +{ + uf->lpCurLoc = lpLine; +} + +/********************************************************************** + * UXINI_GetNextSection + * + * Locate the next section in the ini file, and return pointer to + * section name, non NULL terminated. Use dwLen to determine length + * + * PARAMS + * uf INI file to search, search starts at current location + * dwLen Location to store pointer to section name length + * + * RETURNS + * The section name, non NULL terminated + */ +LPCWSTR UXINI_GetNextSection(PUXINI_FILE uf, DWORD *dwLen) +{ + LPCWSTR lpLine; + while((lpLine = UXINI_GetNextLine(uf, dwLen))) { + /* Assuming a ']' ending to the section name */ + if(lpLine[0] == '[') { + lpLine++; + *dwLen -= 2; + break; + } + } + return lpLine; +} + +/********************************************************************** + * UXINI_FindSection + * + * Locate a section with the specified name, search starts + * at current location in ini file + * to start search from start, call UXINI_ResetINI + * + * PARAMS + * uf INI file to search, search starts at current location + * lpName Name of the section to locate + * + * RETURNS + * TRUE if section was found, FALSE otherwise + */ +BOOL UXINI_FindSection(PUXINI_FILE uf, LPCWSTR lpName) +{ + LPCWSTR lpSection; + DWORD dwLen; + while((lpSection = UXINI_GetNextSection(uf, &dwLen))) { + if(CompareStringW(LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE, lpSection, dwLen, lpName, -1) == CSTR_EQUAL) { + return TRUE; + } + } + return FALSE; +} + +/********************************************************************** + * UXINI_GetNextValue + * + * Locate the next value in the current section + * + * PARAMS + * uf INI file to search, search starts at current location + * dwNameLen Location to store pointer to value name length + * lpValue Location to store pointer to the value + * dwValueLen Location to store pointer to value length + * + * RETURNS + * The value name, non NULL terminated + */ +LPCWSTR UXINI_GetNextValue(PUXINI_FILE uf, DWORD *dwNameLen, LPCWSTR *lpValue, DWORD *dwValueLen) +{ + LPCWSTR lpLine; + LPCWSTR lpLineEnd; + LPCWSTR name = NULL; + LPCWSTR value = NULL; + DWORD vallen = 0; + DWORD namelen = 0; + DWORD dwLen; + lpLine = UXINI_GetNextLine(uf, &dwLen); + if(!lpLine) + return NULL; + if(lpLine[0] == '[') { + UXINI_UnGetToLine(uf, lpLine); + return NULL; + } + lpLineEnd = lpLine + dwLen; + + name = lpLine; + while(namelen < dwLen && *lpLine != '=') { + lpLine++; + namelen++; + } + if(*lpLine != '=') return NULL; + lpLine++; + + /* Remove whitespace from end of name */ + while(UXINI_isspace(name[namelen-1])) namelen--; + /* Remove whitespace from beginning of value */ + while(UXINI_isspace(*lpLine) && lpLine < lpLineEnd) lpLine++; + value = lpLine; + vallen = dwLen-(value-name); + + *dwNameLen = namelen; + *dwValueLen = vallen; + *lpValue = value; + + return name; +} + +/********************************************************************** + * UXINI_FindValue + * + * Locate a value by name + * + * PARAMS + * uf INI file to search, search starts at current location + * lpName Value name to locate + * lpValue Location to store pointer to the value + * dwValueLen Location to store pointer to value length + * + * RETURNS + * The value name, non NULL terminated + */ +BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen) +{ + LPCWSTR name; + DWORD namelen; + + while((name = UXINI_GetNextValue(uf, &namelen, lpValue, dwValueLen))) { + if(CompareStringW(LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE, name, namelen, lpName, -1) == CSTR_EQUAL) { + return TRUE; + } + } + return FALSE; +}