Commit 1f040d66 authored by Michael Stefaniuc's avatar Michael Stefaniuc Committed by Alexandre Julliard

uxtheme: Use wide-char string literals.

parent e947b081
...@@ -49,7 +49,6 @@ extern ATOM atDialogThemeEnabled; ...@@ -49,7 +49,6 @@ extern ATOM atDialogThemeEnabled;
*/ */
HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags) HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags)
{ {
static const WCHAR szTab[] = { 'T','a','b',0 };
BOOL res; BOOL res;
TRACE("(%p,0x%08x\n", hwnd, dwFlags); TRACE("(%p,0x%08x\n", hwnd, dwFlags);
...@@ -59,7 +58,7 @@ HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags) ...@@ -59,7 +58,7 @@ HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags)
if (!res) if (!res)
return HRESULT_FROM_WIN32(GetLastError()); return HRESULT_FROM_WIN32(GetLastError());
if (dwFlags & ETDT_USETABTEXTURE) if (dwFlags & ETDT_USETABTEXTURE)
return SetWindowTheme (hwnd, NULL, szTab); return SetWindowTheme (hwnd, NULL, L"Tab");
else else
return SetWindowTheme (hwnd, NULL, NULL); return SetWindowTheme (hwnd, NULL, NULL);
} }
......
...@@ -50,10 +50,6 @@ extern int alphaBlendMode; ...@@ -50,10 +50,6 @@ extern int alphaBlendMode;
#define MSSTYLES_VERSION 0x0003 #define MSSTYLES_VERSION 0x0003
static const WCHAR szThemesIniResource[] = {
't','h','e','m','e','s','_','i','n','i','\0'
};
static PTHEME_FILE tfActiveTheme; static PTHEME_FILE tfActiveTheme;
/***********************************************************************/ /***********************************************************************/
...@@ -78,15 +74,6 @@ HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWST ...@@ -78,15 +74,6 @@ HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWST
HMODULE hTheme; HMODULE hTheme;
HRSRC hrsc; HRSRC hrsc;
HRESULT hr = S_OK; HRESULT hr = S_OK;
static const WCHAR szPackThemVersionResource[] = {
'P','A','C','K','T','H','E','M','_','V','E','R','S','I','O','N', '\0'
};
static const WCHAR szColorNamesResource[] = {
'C','O','L','O','R','N','A','M','E','S','\0'
};
static const WCHAR szSizeNamesResource[] = {
'S','I','Z','E','N','A','M','E','S','\0'
};
WORD version; WORD version;
DWORD versize; DWORD versize;
...@@ -105,7 +92,7 @@ HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWST ...@@ -105,7 +92,7 @@ HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWST
hr = HRESULT_FROM_WIN32(GetLastError()); hr = HRESULT_FROM_WIN32(GetLastError());
goto invalid_theme; goto invalid_theme;
} }
if(!(hrsc = FindResourceW(hTheme, MAKEINTRESOURCEW(1), szPackThemVersionResource))) { if(!(hrsc = FindResourceW(hTheme, MAKEINTRESOURCEW(1), L"PACKTHEM_VERSION"))) {
TRACE("No version resource found\n"); TRACE("No version resource found\n");
hr = HRESULT_FROM_WIN32(ERROR_BAD_FORMAT); hr = HRESULT_FROM_WIN32(ERROR_BAD_FORMAT);
goto invalid_theme; goto invalid_theme;
...@@ -124,14 +111,14 @@ HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWST ...@@ -124,14 +111,14 @@ HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWST
goto invalid_theme; goto invalid_theme;
} }
if(!(hrsc = FindResourceW(hTheme, MAKEINTRESOURCEW(1), szColorNamesResource))) { if(!(hrsc = FindResourceW(hTheme, MAKEINTRESOURCEW(1), L"COLORNAMES"))) {
TRACE("Color names resource not found\n"); TRACE("Color names resource not found\n");
hr = HRESULT_FROM_WIN32(ERROR_BAD_FORMAT); hr = HRESULT_FROM_WIN32(ERROR_BAD_FORMAT);
goto invalid_theme; goto invalid_theme;
} }
pszColors = LoadResource(hTheme, hrsc); pszColors = LoadResource(hTheme, hrsc);
if(!(hrsc = FindResourceW(hTheme, MAKEINTRESOURCEW(1), szSizeNamesResource))) { if(!(hrsc = FindResourceW(hTheme, MAKEINTRESOURCEW(1), L"SIZENAMES"))) {
TRACE("Size names resource not found\n"); TRACE("Size names resource not found\n");
hr = HRESULT_FROM_WIN32(ERROR_BAD_FORMAT); hr = HRESULT_FROM_WIN32(ERROR_BAD_FORMAT);
goto invalid_theme; goto invalid_theme;
...@@ -259,7 +246,7 @@ HRESULT MSSTYLES_SetActiveTheme(PTHEME_FILE tf, BOOL setMetrics) ...@@ -259,7 +246,7 @@ HRESULT MSSTYLES_SetActiveTheme(PTHEME_FILE tf, BOOL setMetrics)
*/ */
PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf) PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf)
{ {
return UXINI_LoadINI(tf->hTheme, szThemesIniResource); return UXINI_LoadINI(tf->hTheme, L"themes_ini");
} }
/*********************************************************************** /***********************************************************************
...@@ -269,9 +256,6 @@ PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf) ...@@ -269,9 +256,6 @@ PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf)
*/ */
static PUXINI_FILE MSSTYLES_GetActiveThemeIni(PTHEME_FILE tf) static PUXINI_FILE MSSTYLES_GetActiveThemeIni(PTHEME_FILE tf)
{ {
static const WCHAR szFileResNamesResource[] = {
'F','I','L','E','R','E','S','N','A','M','E','S','\0'
};
DWORD dwColorCount = 0; DWORD dwColorCount = 0;
DWORD dwSizeCount = 0; DWORD dwSizeCount = 0;
DWORD dwColorNum = 0; DWORD dwColorNum = 0;
...@@ -299,7 +283,7 @@ static PUXINI_FILE MSSTYLES_GetActiveThemeIni(PTHEME_FILE tf) ...@@ -299,7 +283,7 @@ static PUXINI_FILE MSSTYLES_GetActiveThemeIni(PTHEME_FILE tf)
dwSizeCount++; dwSizeCount++;
} }
if(!(hrsc = FindResourceW(tf->hTheme, MAKEINTRESOURCEW(1), szFileResNamesResource))) { if(!(hrsc = FindResourceW(tf->hTheme, MAKEINTRESOURCEW(1), L"FILERESNAMES"))) {
TRACE("FILERESNAMES map not found\n"); TRACE("FILERESNAMES map not found\n");
return NULL; return NULL;
} }
...@@ -865,8 +849,6 @@ static void parse_apply_nonclient (struct PARSENONCLIENTSTATE* state) ...@@ -865,8 +849,6 @@ static void parse_apply_nonclient (struct PARSENONCLIENTSTATE* state)
*/ */
static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics) static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics)
{ {
static const WCHAR szSysMetrics[] = {'S','y','s','M','e','t','r','i','c','s','\0'};
static const WCHAR szGlobals[] = {'g','l','o','b','a','l','s','\0'};
PTHEME_CLASS cls; PTHEME_CLASS cls;
PTHEME_CLASS globals; PTHEME_CLASS globals;
PTHEME_PARTSTATE ps; PTHEME_PARTSTATE ps;
...@@ -886,7 +868,7 @@ static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics) ...@@ -886,7 +868,7 @@ static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics)
ini = MSSTYLES_GetActiveThemeIni(tf); ini = MSSTYLES_GetActiveThemeIni(tf);
while((lpName=UXINI_GetNextSection(ini, &dwLen))) { while((lpName=UXINI_GetNextSection(ini, &dwLen))) {
if(CompareStringW(LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE, lpName, dwLen, szSysMetrics, -1) == CSTR_EQUAL) { if(CompareStringW(LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE, lpName, dwLen, L"SysMetrics", -1) == CSTR_EQUAL) {
struct PARSECOLORSTATE colorState; struct PARSECOLORSTATE colorState;
struct PARSENONCLIENTSTATE nonClientState; struct PARSENONCLIENTSTATE nonClientState;
...@@ -938,7 +920,7 @@ static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics) ...@@ -938,7 +920,7 @@ static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics)
} }
if(MSSTYLES_ParseIniSectionName(lpName, dwLen, szAppName, szClassName, &iPartId, &iStateId)) { if(MSSTYLES_ParseIniSectionName(lpName, dwLen, szAppName, szClassName, &iPartId, &iStateId)) {
BOOL isGlobal = FALSE; BOOL isGlobal = FALSE;
if(!lstrcmpiW(szClassName, szGlobals)) { if(!lstrcmpiW(szClassName, L"globals")) {
isGlobal = TRUE; isGlobal = TRUE;
} }
cls = MSSTYLES_AddClass(tf, szAppName, szClassName); cls = MSSTYLES_AddClass(tf, szAppName, szClassName);
...@@ -957,7 +939,7 @@ static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics) ...@@ -957,7 +939,7 @@ static void MSSTYLES_ParseThemeIni(PTHEME_FILE tf, BOOL setMetrics)
} }
/* App/Class combos override values defined by the base class, map these overrides */ /* App/Class combos override values defined by the base class, map these overrides */
globals = MSSTYLES_FindClass(tf, NULL, szGlobals); globals = MSSTYLES_FindClass(tf, NULL, L"globals");
cls = tf->classes; cls = tf->classes;
while(cls) { while(cls) {
if(*cls->szAppName) { if(*cls->szAppName) {
...@@ -1250,10 +1232,6 @@ HRESULT MSSTYLES_GetPropertyColor(PTHEME_PROPERTY tp, COLORREF *pColor) ...@@ -1250,10 +1232,6 @@ HRESULT MSSTYLES_GetPropertyColor(PTHEME_PROPERTY tp, COLORREF *pColor)
static HRESULT MSSTYLES_GetFont (LPCWSTR lpCur, LPCWSTR lpEnd, static HRESULT MSSTYLES_GetFont (LPCWSTR lpCur, LPCWSTR lpEnd,
LPCWSTR *lpValEnd, LOGFONTW* pFont) LPCWSTR *lpValEnd, LOGFONTW* pFont)
{ {
static const WCHAR szBold[] = {'b','o','l','d','\0'};
static const WCHAR szItalic[] = {'i','t','a','l','i','c','\0'};
static const WCHAR szUnderline[] = {'u','n','d','e','r','l','i','n','e','\0'};
static const WCHAR szStrikeOut[] = {'s','t','r','i','k','e','o','u','t','\0'};
int pointSize; int pointSize;
WCHAR attr[32]; WCHAR attr[32];
...@@ -1271,10 +1249,10 @@ static HRESULT MSSTYLES_GetFont (LPCWSTR lpCur, LPCWSTR lpEnd, ...@@ -1271,10 +1249,10 @@ static HRESULT MSSTYLES_GetFont (LPCWSTR lpCur, LPCWSTR lpEnd,
pFont->lfWeight = FW_REGULAR; pFont->lfWeight = FW_REGULAR;
pFont->lfCharSet = DEFAULT_CHARSET; pFont->lfCharSet = DEFAULT_CHARSET;
while(MSSTYLES_GetNextToken(lpCur, lpEnd, &lpCur, attr, ARRAY_SIZE(attr))) { while(MSSTYLES_GetNextToken(lpCur, lpEnd, &lpCur, attr, ARRAY_SIZE(attr))) {
if(!lstrcmpiW(szBold, attr)) pFont->lfWeight = FW_BOLD; if(!lstrcmpiW(L"bold", attr)) pFont->lfWeight = FW_BOLD;
else if(!lstrcmpiW(szItalic, attr)) pFont->lfItalic = TRUE; else if(!lstrcmpiW(L"italic", attr)) pFont->lfItalic = TRUE;
else if(!lstrcmpiW(szUnderline, attr)) pFont->lfUnderline = TRUE; else if(!lstrcmpiW(L"underline", attr)) pFont->lfUnderline = TRUE;
else if(!lstrcmpiW(szStrikeOut, attr)) pFont->lfStrikeOut = TRUE; else if(!lstrcmpiW(L"strikeout", attr)) pFont->lfStrikeOut = TRUE;
} }
*lpValEnd = lpCur; *lpValEnd = lpCur;
return S_OK; return S_OK;
......
...@@ -41,19 +41,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(uxtheme); ...@@ -41,19 +41,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
* Defines and global variables * Defines and global variables
*/ */
static const WCHAR szThemeManager[] = { static const WCHAR szThemeManager[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager";
'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
'W','i','n','d','o','w','s','\\',
'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
'T','h','e','m','e','M','a','n','a','g','e','r','\0'
};
static const WCHAR szThemeActive[] = {'T','h','e','m','e','A','c','t','i','v','e','\0'};
static const WCHAR szSizeName[] = {'S','i','z','e','N','a','m','e','\0'};
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'};
DECLSPEC_HIDDEN ATOM atDialogThemeEnabled; DECLSPEC_HIDDEN ATOM atDialogThemeEnabled;
...@@ -116,12 +104,12 @@ static DWORD query_reg_path (HKEY hKey, LPCWSTR lpszValue, ...@@ -116,12 +104,12 @@ static DWORD query_reg_path (HKEY hKey, LPCWSTR lpszValue,
*/ */
if (dwRet == ERROR_MORE_DATA) if (dwRet == ERROR_MORE_DATA)
{ {
WCHAR cNull = '\0'; WCHAR emptyW[] = L"";
nBytesToAlloc = dwUnExpDataLen; nBytesToAlloc = dwUnExpDataLen;
szData = LocalAlloc(LMEM_ZEROINIT, nBytesToAlloc); szData = LocalAlloc(LMEM_ZEROINIT, nBytesToAlloc);
RegQueryValueExW (hKey, lpszValue, 0, NULL, (LPBYTE)szData, &nBytesToAlloc); RegQueryValueExW (hKey, lpszValue, 0, NULL, (LPBYTE)szData, &nBytesToAlloc);
dwExpDataLen = ExpandEnvironmentStringsW(szData, &cNull, 1); dwExpDataLen = ExpandEnvironmentStringsW(szData, emptyW, 1);
dwUnExpDataLen = max(nBytesToAlloc, dwExpDataLen); dwUnExpDataLen = max(nBytesToAlloc, dwExpDataLen);
LocalFree(szData); LocalFree(szData);
} }
...@@ -158,7 +146,7 @@ static void UXTHEME_LoadTheme(void) ...@@ -158,7 +146,7 @@ static void UXTHEME_LoadTheme(void)
if(!RegOpenKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) { if(!RegOpenKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) {
TRACE("Loading theme config\n"); TRACE("Loading theme config\n");
buffsize = ARRAY_SIZE(tmp); buffsize = ARRAY_SIZE(tmp);
if(!RegQueryValueExW(hKey, szThemeActive, NULL, NULL, (LPBYTE)tmp, &buffsize)) { if (!RegQueryValueExW(hKey, L"ThemeActive", NULL, NULL, (BYTE*)tmp, &buffsize)) {
bThemeActive = (tmp[0] != '0'); bThemeActive = (tmp[0] != '0');
} }
else { else {
...@@ -166,12 +154,12 @@ static void UXTHEME_LoadTheme(void) ...@@ -166,12 +154,12 @@ static void UXTHEME_LoadTheme(void)
TRACE("Failed to get ThemeActive: %d\n", GetLastError()); TRACE("Failed to get ThemeActive: %d\n", GetLastError());
} }
buffsize = ARRAY_SIZE(szCurrentColor); buffsize = ARRAY_SIZE(szCurrentColor);
if(RegQueryValueExW(hKey, szColorName, NULL, NULL, (LPBYTE)szCurrentColor, &buffsize)) if (RegQueryValueExW(hKey, L"ColorName", NULL, NULL, (BYTE*)szCurrentColor, &buffsize))
szCurrentColor[0] = '\0'; szCurrentColor[0] = '\0';
buffsize = ARRAY_SIZE(szCurrentSize); buffsize = ARRAY_SIZE(szCurrentSize);
if(RegQueryValueExW(hKey, szSizeName, NULL, NULL, (LPBYTE)szCurrentSize, &buffsize)) if (RegQueryValueExW(hKey, L"SizeName", NULL, NULL, (BYTE*)szCurrentSize, &buffsize))
szCurrentSize[0] = '\0'; szCurrentSize[0] = '\0';
if (query_reg_path (hKey, szDllName, szCurrentTheme)) if (query_reg_path (hKey, L"DllName", szCurrentTheme))
szCurrentTheme[0] = '\0'; szCurrentTheme[0] = '\0';
RegCloseKey(hKey); RegCloseKey(hKey);
} }
...@@ -243,16 +231,8 @@ static const char * const SysColorsNames[] = ...@@ -243,16 +231,8 @@ static const char * const SysColorsNames[] =
"MenuHilight", /* COLOR_MENUHILIGHT */ "MenuHilight", /* COLOR_MENUHILIGHT */
"MenuBar", /* COLOR_MENUBAR */ "MenuBar", /* COLOR_MENUBAR */
}; };
static const WCHAR strColorKey[] =
{ 'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\', static const WCHAR strColorKey[] = L"Control Panel\\Colors";
'C','o','l','o','r','s',0 };
static const WCHAR keyFlatMenus[] = { 'F','l','a','t','M','e','n','u', 0};
static const WCHAR keyGradientCaption[] = { 'G','r','a','d','i','e','n','t',
'C','a','p','t','i','o','n', 0 };
static const WCHAR keyNonClientMetrics[] = { 'N','o','n','C','l','i','e','n','t',
'M','e','t','r','i','c','s',0 };
static const WCHAR keyIconTitleFont[] = { 'I','c','o','n','T','i','t','l','e',
'F','o','n','t',0 };
static const struct BackupSysParam static const struct BackupSysParam
{ {
...@@ -260,8 +240,8 @@ static const struct BackupSysParam ...@@ -260,8 +240,8 @@ static const struct BackupSysParam
const WCHAR* keyName; const WCHAR* keyName;
} backupSysParams[] = } backupSysParams[] =
{ {
{SPI_GETFLATMENU, SPI_SETFLATMENU, keyFlatMenus}, {SPI_GETFLATMENU, SPI_SETFLATMENU, L"FlatMenu"},
{SPI_GETGRADIENTCAPTIONS, SPI_SETGRADIENTCAPTIONS, keyGradientCaption}, {SPI_GETGRADIENTCAPTIONS, SPI_SETGRADIENTCAPTIONS, L"GradientCaption"},
{-1, -1, 0} {-1, -1, 0}
}; };
...@@ -325,12 +305,12 @@ static void UXTHEME_BackupSystemMetrics(void) ...@@ -325,12 +305,12 @@ static void UXTHEME_BackupSystemMetrics(void)
memset (&ncm, 0, sizeof (ncm)); memset (&ncm, 0, sizeof (ncm));
ncm.cbSize = sizeof (ncm); ncm.cbSize = sizeof (ncm);
SystemParametersInfoW (SPI_GETNONCLIENTMETRICS, sizeof (ncm), &ncm, 0); SystemParametersInfoW (SPI_GETNONCLIENTMETRICS, sizeof (ncm), &ncm, 0);
RegSetValueExW (hKey, keyNonClientMetrics, 0, REG_BINARY, (LPBYTE)&ncm, RegSetValueExW (hKey, L"NonClientMetrics", 0, REG_BINARY, (BYTE*)&ncm,
sizeof (ncm)); sizeof (ncm));
memset (&iconTitleFont, 0, sizeof (iconTitleFont)); memset (&iconTitleFont, 0, sizeof (iconTitleFont));
SystemParametersInfoW (SPI_GETICONTITLELOGFONT, sizeof (iconTitleFont), SystemParametersInfoW (SPI_GETICONTITLELOGFONT, sizeof (iconTitleFont),
&iconTitleFont, 0); &iconTitleFont, 0);
RegSetValueExW (hKey, keyIconTitleFont, 0, REG_BINARY, RegSetValueExW (hKey, L"IconTitleFont", 0, REG_BINARY,
(LPBYTE)&iconTitleFont, sizeof (iconTitleFont)); (LPBYTE)&iconTitleFont, sizeof (iconTitleFont));
RegCloseKey (hKey); RegCloseKey (hKey);
...@@ -402,8 +382,8 @@ static void UXTHEME_RestoreSystemMetrics(void) ...@@ -402,8 +382,8 @@ static void UXTHEME_RestoreSystemMetrics(void)
LOGFONTW iconTitleFont; LOGFONTW iconTitleFont;
DWORD count = sizeof(ncm); DWORD count = sizeof(ncm);
DWORD type; DWORD type;
if (RegQueryValueExW (hKey, keyNonClientMetrics, 0, if (RegQueryValueExW (hKey, L"NonClientMetrics", 0,
&type, (LPBYTE)&ncm, &count) == ERROR_SUCCESS) &type, (LPBYTE)&ncm, &count) == ERROR_SUCCESS)
{ {
SystemParametersInfoW (SPI_SETNONCLIENTMETRICS, SystemParametersInfoW (SPI_SETNONCLIENTMETRICS,
...@@ -411,8 +391,8 @@ static void UXTHEME_RestoreSystemMetrics(void) ...@@ -411,8 +391,8 @@ static void UXTHEME_RestoreSystemMetrics(void)
} }
count = sizeof(iconTitleFont); count = sizeof(iconTitleFont);
if (RegQueryValueExW (hKey, keyIconTitleFont, 0, if (RegQueryValueExW (hKey, L"IconTitleFont", 0,
&type, (LPBYTE)&iconTitleFont, &count) == ERROR_SUCCESS) &type, (LPBYTE)&iconTitleFont, &count) == ERROR_SUCCESS)
{ {
SystemParametersInfoW (SPI_SETICONTITLELOGFONT, SystemParametersInfoW (SPI_SETICONTITLELOGFONT,
...@@ -491,19 +471,19 @@ static HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf) ...@@ -491,19 +471,19 @@ static HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf)
if(!RegCreateKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) { if(!RegCreateKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) {
tmp[0] = bThemeActive?'1':'0'; tmp[0] = bThemeActive?'1':'0';
tmp[1] = '\0'; tmp[1] = '\0';
RegSetValueExW(hKey, szThemeActive, 0, REG_SZ, (const BYTE*)tmp, sizeof(WCHAR)*2); RegSetValueExW(hKey, L"ThemeActive", 0, REG_SZ, (const BYTE*)tmp, sizeof(WCHAR)*2);
if(bThemeActive) { if(bThemeActive) {
RegSetValueExW(hKey, szColorName, 0, REG_SZ, (const BYTE*)szCurrentColor, RegSetValueExW(hKey, L"ColorName", 0, REG_SZ, (const BYTE*)szCurrentColor,
(lstrlenW(szCurrentColor)+1)*sizeof(WCHAR)); (lstrlenW(szCurrentColor)+1)*sizeof(WCHAR));
RegSetValueExW(hKey, szSizeName, 0, REG_SZ, (const BYTE*)szCurrentSize, RegSetValueExW(hKey, L"SizeName", 0, REG_SZ, (const BYTE*)szCurrentSize,
(lstrlenW(szCurrentSize)+1)*sizeof(WCHAR)); (lstrlenW(szCurrentSize)+1)*sizeof(WCHAR));
RegSetValueExW(hKey, szDllName, 0, REG_SZ, (const BYTE*)szCurrentTheme, RegSetValueExW(hKey, L"DllName", 0, REG_SZ, (const BYTE*)szCurrentTheme,
(lstrlenW(szCurrentTheme)+1)*sizeof(WCHAR)); (lstrlenW(szCurrentTheme)+1)*sizeof(WCHAR));
} }
else { else {
RegDeleteValueW(hKey, szColorName); RegDeleteValueW(hKey, L"ColorName");
RegDeleteValueW(hKey, szSizeName); RegDeleteValueW(hKey, L"SizeName");
RegDeleteValueW(hKey, szDllName); RegDeleteValueW(hKey, L"DllName");
} }
RegCloseKey(hKey); RegCloseKey(hKey);
...@@ -521,23 +501,10 @@ static HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf) ...@@ -521,23 +501,10 @@ static HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf)
*/ */
void UXTHEME_InitSystem(HINSTANCE hInst) void UXTHEME_InitSystem(HINSTANCE hInst)
{ {
static const WCHAR szWindowTheme[] = { atWindowTheme = GlobalAddAtomW(L"ux_theme");
'u','x','_','t','h','e','m','e','\0' atSubAppName = GlobalAddAtomW(L"ux_subapp");
}; atSubIdList = GlobalAddAtomW(L"ux_subidlst");
static const WCHAR szSubAppName[] = { atDialogThemeEnabled = GlobalAddAtomW(L"ux_dialogtheme");
'u','x','_','s','u','b','a','p','p','\0'
};
static const WCHAR szSubIdList[] = {
'u','x','_','s','u','b','i','d','l','s','t','\0'
};
static const WCHAR szDialogThemeEnabled[] = {
'u','x','_','d','i','a','l','o','g','t','h','e','m','e','\0'
};
atWindowTheme = GlobalAddAtomW(szWindowTheme);
atSubAppName = GlobalAddAtomW(szSubAppName);
atSubIdList = GlobalAddAtomW(szSubIdList);
atDialogThemeEnabled = GlobalAddAtomW(szDialogThemeEnabled);
UXTHEME_LoadTheme(); UXTHEME_LoadTheme();
} }
...@@ -581,7 +548,7 @@ BOOL WINAPI IsCompositionActive(void) ...@@ -581,7 +548,7 @@ BOOL WINAPI IsCompositionActive(void)
HRESULT WINAPI EnableTheming(BOOL fEnable) HRESULT WINAPI EnableTheming(BOOL fEnable)
{ {
HKEY hKey; HKEY hKey;
WCHAR szEnabled[] = {'0','\0'}; WCHAR szEnabled[] = L"0";
TRACE("(%d)\n", fEnable); TRACE("(%d)\n", fEnable);
...@@ -594,7 +561,7 @@ HRESULT WINAPI EnableTheming(BOOL fEnable) ...@@ -594,7 +561,7 @@ HRESULT WINAPI EnableTheming(BOOL fEnable)
bThemeActive = fEnable; bThemeActive = fEnable;
if(bThemeActive) szEnabled[0] = '1'; if(bThemeActive) szEnabled[0] = '1';
if(!RegOpenKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) { if(!RegOpenKeyW(HKEY_CURRENT_USER, szThemeManager, &hKey)) {
RegSetValueExW(hKey, szThemeActive, 0, REG_SZ, (LPBYTE)szEnabled, sizeof(WCHAR)); RegSetValueExW(hKey, L"ThemeActive", 0, REG_SZ, (BYTE*)szEnabled, sizeof(WCHAR));
RegCloseKey(hKey); RegCloseKey(hKey);
} }
UXTHEME_broadcast_msg (NULL, WM_THEMECHANGED); UXTHEME_broadcast_msg (NULL, WM_THEMECHANGED);
...@@ -847,7 +814,7 @@ HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName, ...@@ -847,7 +814,7 @@ HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName,
/* If loading from string resource failed, try getting it from the theme.ini */ /* If loading from string resource failed, try getting it from the theme.ini */
if(FAILED(hr)) { if(FAILED(hr)) {
PUXINI_FILE uf = MSSTYLES_GetThemeIni(pt); PUXINI_FILE uf = MSSTYLES_GetThemeIni(pt);
if(UXINI_FindSection(uf, szIniDocumentation)) { if(UXINI_FindSection(uf, L"documentation")) {
LPCWSTR lpValue; LPCWSTR lpValue;
DWORD dwLen; DWORD dwLen;
if(UXINI_FindValue(uf, pszPropertyName, &lpValue, &dwLen)) { if(UXINI_FindValue(uf, pszPropertyName, &lpValue, &dwLen)) {
...@@ -1012,10 +979,6 @@ HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback, ...@@ -1012,10 +979,6 @@ HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback,
{ {
WCHAR szDir[MAX_PATH]; WCHAR szDir[MAX_PATH];
WCHAR szPath[MAX_PATH]; WCHAR szPath[MAX_PATH];
static const WCHAR szStar[] = {'*','.','*','\0'};
static const WCHAR szFormat[] = {'%','s','%','s','\\','%','s','.','m','s','s','t','y','l','e','s','\0'};
static const WCHAR szDisplayName[] = {'d','i','s','p','l','a','y','n','a','m','e','\0'};
static const WCHAR szTooltip[] = {'t','o','o','l','t','i','p','\0'};
WCHAR szName[60]; WCHAR szName[60];
WCHAR szTip[60]; WCHAR szTip[60];
HANDLE hFind; HANDLE hFind;
...@@ -1037,7 +1000,7 @@ HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback, ...@@ -1037,7 +1000,7 @@ HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback,
} }
lstrcpyW(szPath, szDir); lstrcpyW(szPath, szDir);
lstrcatW(szPath, szStar); lstrcatW(szPath, L"*.*");
TRACE("searching %s\n", debugstr_w(szPath)); TRACE("searching %s\n", debugstr_w(szPath));
hFind = FindFirstFileW(szPath, &wfd); hFind = FindFirstFileW(szPath, &wfd);
...@@ -1045,11 +1008,11 @@ HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback, ...@@ -1045,11 +1008,11 @@ HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback,
do { do {
if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
&& !(wfd.cFileName[0] == '.' && ((wfd.cFileName[1] == '.' && wfd.cFileName[2] == 0) || wfd.cFileName[1] == 0))) { && !(wfd.cFileName[0] == '.' && ((wfd.cFileName[1] == '.' && wfd.cFileName[2] == 0) || wfd.cFileName[1] == 0))) {
wsprintfW(szPath, szFormat, szDir, wfd.cFileName, wfd.cFileName); wsprintfW(szPath, L"%s%s\\%s.msstyles", szDir, wfd.cFileName, wfd.cFileName);
hr = GetThemeDocumentationProperty(szPath, szDisplayName, szName, ARRAY_SIZE(szName)); hr = GetThemeDocumentationProperty(szPath, L"displayname", szName, ARRAY_SIZE(szName));
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = GetThemeDocumentationProperty(szPath, szTooltip, szTip, ARRAY_SIZE(szTip)); hr = GetThemeDocumentationProperty(szPath, L"tooltip", szTip, ARRAY_SIZE(szTip));
if(SUCCEEDED(hr)) { if(SUCCEEDED(hr)) {
TRACE("callback(%s,%s,%s,%p)\n", debugstr_w(szPath), debugstr_w(szName), debugstr_w(szTip), lpData); TRACE("callback(%s,%s,%s,%p)\n", debugstr_w(szPath), debugstr_w(szName), debugstr_w(szTip), lpData);
if(!callback(NULL, szPath, szName, szTip, NULL, lpData)) { if(!callback(NULL, szPath, szName, szTip, NULL, lpData)) {
......
...@@ -33,10 +33,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(uxtheme); ...@@ -33,10 +33,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
* Defines and global variables * Defines and global variables
*/ */
static const WCHAR szTextFileResource[] = {
'T','E','X','T','F','I','L','E','\0'
};
typedef struct _UXINI_FILE { typedef struct _UXINI_FILE {
LPCWSTR lpIni; LPCWSTR lpIni;
LPCWSTR lpCurLoc; LPCWSTR lpCurLoc;
...@@ -66,7 +62,7 @@ PUXINI_FILE UXINI_LoadINI(HMODULE hTheme, LPCWSTR lpName) { ...@@ -66,7 +62,7 @@ PUXINI_FILE UXINI_LoadINI(HMODULE hTheme, LPCWSTR lpName) {
TRACE("Loading resource INI %s\n", debugstr_w(lpName)); TRACE("Loading resource INI %s\n", debugstr_w(lpName));
if((hrsc = FindResourceW(hTheme, lpName, szTextFileResource))) { if((hrsc = FindResourceW(hTheme, lpName, L"TEXTFILE"))) {
if(!(lpThemesIni = LoadResource(hTheme, hrsc))) { if(!(lpThemesIni = LoadResource(hTheme, hrsc))) {
TRACE("%s resource not found\n", debugstr_w(lpName)); TRACE("%s resource not found\n", debugstr_w(lpName));
return NULL; return NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment