32 'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
33 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
34 'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
35 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\\',
36 'T',
'h',
'e',
'm',
'e',
'M',
'a',
'n',
'a',
'g',
'e',
'r',
'\0' 38 static const WCHAR szThemeActive[] = {
'T',
'h',
'e',
'm',
'e',
'A',
'c',
't',
'i',
'v',
'e',
'\0'};
43 static const WCHAR szIniDocumentation[] = {
'd',
'o',
'c',
'u',
'm',
'e',
'n',
't',
'a',
't',
'i',
'o',
'n',
'\0'};
109 nBytesToAlloc = dwUnExpDataLen;
114 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
124 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
191 WCHAR szCurrentColor[64];
192 WCHAR szCurrentSize[64];
199 TRACE(
"Loading theme config\n");
200 buffsize =
sizeof(tmp);
208 buffsize =
sizeof(szCurrentColor);
210 szCurrentColor[0] =
'\0';
211 buffsize =
sizeof(szCurrentSize);
213 szCurrentSize[0] =
'\0';
215 szCurrentTheme[0] =
'\0';
219 TRACE(
"Failed to open theme registry key\n");
228 if(
bIsThemeActive(szCurrentTheme, szCurrentColor, szCurrentSize) )
230 TRACE(
"Tried to load active theme again\n");
236 szCurrentColor[0]?szCurrentColor:
NULL,
237 szCurrentSize[0]?szCurrentSize:
NULL,
252 TRACE(
"Theming not active\n");
285 "ButtonAlternateFace",
287 "GradientActiveTitle",
288 "GradientInactiveTitle",
293 {
'C',
'o',
'n',
't',
'r',
'o',
'l',
' ',
'P',
'a',
'n',
'e',
'l',
'\\',
294 'C',
'o',
'l',
'o',
'r',
's',0 };
297 'C',
'a',
'p',
't',
'i',
'o',
'n', 0 };
299 'M',
'e',
't',
'r',
'i',
'c',
's',0 };
314 #define NUM_SYS_COLORS (COLOR_MENUBAR+1) 352 NONCLIENTMETRICSW ncm;
371 memset (&ncm, 0,
sizeof (ncm));
372 ncm.cbSize =
sizeof (ncm);
376 memset (&iconTitleFont, 0,
sizeof (iconTitleFont));
380 (
LPBYTE)&iconTitleFont,
sizeof (iconTitleFont));
416 if (
sscanf (colorStr,
"%d %d %d", &
r, &
g, &
b) == 3)
418 sysColsIndices[sysColCount] =
i;
419 sysCols[sysColCount] =
RGB(
r,
g,
b);
447 NONCLIENTMETRICSW ncm;
459 count =
sizeof(iconTitleFont);
480 NONCLIENTMETRICSW ncm;
494 memset (&ncm, 0,
sizeof (ncm));
495 ncm.cbSize =
sizeof (ncm);
500 memset (&iconTitleFont, 0,
sizeof (iconTitleFont));
518 TRACE(
"UXTHEME_ApplyTheme\n");
534 TRACE(
"Writing theme config to registry\n");
556 TRACE(
"Failed to open theme registry key\n");
568 static const WCHAR szWindowTheme[] = {
569 'u',
'x',
'_',
't',
'h',
'e',
'm',
'e',
'\0' 571 static const WCHAR szSubAppName[] = {
572 'u',
'x',
'_',
's',
'u',
'b',
'a',
'p',
'p',
'\0' 574 static const WCHAR szSubIdList[] = {
575 'u',
'x',
'_',
's',
'u',
'b',
'i',
'd',
'l',
's',
't',
'\0' 577 static const WCHAR szDialogThemeEnabled[] = {
578 'u',
'x',
'_',
'd',
'i',
'a',
'l',
'o',
'g',
't',
'h',
'e',
'm',
'e',
'\0' 614 TRACE(
"IsThemeActive\n");
627 buffsize =
sizeof(tmp);
629 bActive = (tmp[0] !=
'0');
645 WCHAR szEnabled[] = {
'0',
'\0'};
647 TRACE(
"(%d)\n", fEnable);
656 if (fEnable) szEnabled[0] =
'1';
692 ERR(
"AddAtomW for %S failed with last error %d!\n", pszValue,
GetLastError());
698 ERR(
"SetPropW for atom %d failed with last error %d\n", aProp,
GetLastError());
712 TRACE(
"property defined, but unable to get value\n");
726 ERR(
"Invalid handle 0x%x!\n", hTheme);
737 WCHAR szAppBuff[256];
738 WCHAR szClassBuff[256];
768 pszUseClassList = pszClassList;
785 TRACE(
"Created handle 0x%x for class 0x%x, app %S, class %S. Count: %d\n", pHandle, pClass, pszAppName, pszUseClassList,
g_cHandles);
800 if ((
flags & OTD_NONCLIENT) == 0)
812 TRACE(
" = %p\n", hTheme);
895 LPWSTR pszColorBuff,
int cchMaxColorChars,
896 LPWSTR pszSizeBuff,
int cchMaxSizeChars)
903 if (pszThemeFileName && dwMaxNameChars)
906 if(cchar > dwMaxNameChars)
911 if (pszColorBuff && cchMaxColorChars)
914 if(cchar > cchMaxColorChars)
919 if (pszSizeBuff && cchMaxSizeChars)
922 if(cchar > cchMaxSizeChars)
955 TRACE(
"(%p)\n", hTheme);
965 TRACE(
"Destroying handle 0x%x for class 0x%x. Count: %d\n", pHandle, pHandle->pClass,
g_cHandles);
991 TRACE(
"(%p,%d,%d)\n", hTheme, iPartId, iStateId);
1015 const WORD wDocToRes[] = {
1031 pszValueBuff, cchMaxValChars);
1042 for(
i=0;
i<
sizeof(wDocToRes)/
sizeof(wDocToRes[0]);
i+=2) {
1043 if(wDocToRes[
i] == iDocId) {
1044 if(
LoadStringW(
pt->hTheme, wDocToRes[
i+1], pszValueBuff, cchMaxValChars)) {
1058 lstrcpynW(pszValueBuff, lpValue,
min(dwLen+1,cchMaxValChars));
1129 TRACE(
"(%p)\n", hThemeFile);
1185 DWORD dwSizeNameLen)
1190 pszColorName, dwColorNameLen,
1191 pszSizeName, dwSizeNameLen);
1199 lstrcpynW(pszColorName,
pt->pszSelectedColor, dwColorNameLen);
1200 lstrcpynW(pszSizeName,
pt->pszSelectedSize, dwSizeNameLen);
1226 static const WCHAR szStar[] = {
'*',
'.',
'*',
'\0'};
1227 static const WCHAR szFormat[] = {
'%',
's',
'%',
's',
'\\',
'%',
's',
'.',
'm',
's',
's',
't',
'y',
'l',
'e',
's',
'\0'};
1228 static const WCHAR szDisplayName[] = {
'd',
'i',
's',
'p',
'l',
'a',
'y',
'n',
'a',
'm',
'e',
'\0'};
1229 static const WCHAR szTooltip[] = {
't',
'o',
'o',
'l',
't',
'i',
'p',
'\0'};
1244 if ((pathLen > 0) && (pathLen <
MAX_PATH-1) && (szDir[pathLen - 1] !=
'\\'))
1246 szDir[pathLen] =
'\\';
1247 szDir[pathLen+1] = 0;
1258 && !(wfd.cFileName[0] ==
'.' && ((wfd.cFileName[1] ==
'.' && wfd.cFileName[2] == 0) || wfd.cFileName[1] == 0))) {
1264 ERR(
"Failed to get theme name from %S\n",
szPath);
1274 TRACE(
"callback ended enum\n");
1316 UINT resourceId = dwColorNum + 1000;
1326 tmp =
pt->pszAvailColors;
1327 while(dwColorNum && *tmp) {
1331 if(!dwColorNum && *tmp) {
1379 UINT resourceId = dwSizeNum + 3000;
1389 tmp =
pt->pszAvailSizes;
1390 while(dwSizeNum && *tmp) {
1394 if(!dwSizeNum && *tmp) {
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
static void UXTHEME_SaveSystemMetrics(void)
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
ATOM atDialogThemeEnabled
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
static const WCHAR szName[]
static const WCHAR szSizeName[]
#define HRESULT_FROM_WIN32(x)
WCHAR szDisplayName[MAX_PATH+1]
static void UXTHEME_BackupSystemMetrics(void)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen)
static LPWSTR UXTHEME_GetWindowProperty(HWND hwnd, ATOM aProp, LPWSTR pszBuffer, int dwLen)
ACPI_SIZE strlen(const char *String)
NTSYSAPI VOID NTAPI RtlInitializeHandleTable(_In_ ULONG TableSize, _In_ ULONG HandleSize, _In_ PRTL_HANDLE_TABLE HandleTable)
GLdouble GLdouble GLdouble r
static const WCHAR szThemeManager[]
#define HKEY_CURRENT_USER
GLuint GLuint GLsizei count
static const WCHAR szThemeActive[]
UINT WINAPI GetAtomNameW(ATOM nAtom, LPWSTR lpBuffer, int nSize)
BOOL WINAPI IsThemePartDefined(HTHEME hTheme, int iPartId, int iStateId)
DWORD WINAPI GetThemeAppProperties(void)
static const WCHAR keyFlatMenus[]
#define INVALID_HANDLE_VALUE
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
DWORD WINAPI GetLastError(VOID)
HRESULT MSSTYLES_CloseThemeClass(PTHEME_CLASS tc)
RTL_HANDLE_TABLE_ENTRY Handle
static const WCHAR szColorName[]
static HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf)
static const WCHAR keyGradientCaption[]
HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName, LPCWSTR pszPropertyName, LPWSTR pszValueBuff, int cchMaxValChars)
static DWORD dwThemeAppProperties
HRESULT WINAPI GetThemeDefaults(LPCWSTR pszThemeFileName, LPWSTR pszColorName, DWORD dwColorNameLen, LPWSTR pszSizeName, DWORD dwSizeNameLen)
HRESULT WINAPI HitTestThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, DWORD dwOptions, const RECT *pRect, HRGN hrgn, POINT ptTest, WORD *pwHitTestCode)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
HRESULT WINAPI EnableTheming(BOOL fEnable)
DWORD WINAPI GetSysColor(_In_ int)
static const struct BackupSysParam backupSysParams[]
static BOOL CALLBACK UXTHEME_send_theme_changed(HWND hWnd, LPARAM enable)
HANDLE WINAPI RemovePropW(_In_ HWND, _In_ LPCWSTR)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
HRESULT WINAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList)
void UXTHEME_LoadTheme(BOOL bLoad)
HRESULT MSSTYLES_ReferenceTheme(PTHEME_FILE tf)
#define sprintf(buf, format,...)
static DWORD query_reg_path(HKEY hKey, LPCWSTR lpszValue, LPVOID pvData)
ATOM WINAPI DeleteAtom(ATOM nAtom)
BOOL WINAPI IsAppThemed(void)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
void WINAPI SetThemeAppProperties(DWORD dwFlags)
_In_ ULONG _In_opt_ PVOID pvData
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
ATOM WINAPI AddAtomW(LPCWSTR lpString)
HRESULT WINAPI EnumThemeColors(LPWSTR pszThemeFileName, LPWSTR pszSizeName, DWORD dwColorNum, PTHEMENAMES pszColorNames)
static BOOL bIsThemeActive(LPCWSTR pszTheme, LPCWSTR pszColor, LPCWSTR pszSize)
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
DWORD WINAPI QueryThemeServices(void)
static RGBQUAD int *static HDC(WINAPI *pGetBufferedPaintDC)(HPAINTBUFFER)
BOOL MSSTYLES_LookupProperty(LPCWSTR pszPropertyName, int *dwPrimitive, int *dwId)
NTSYSAPI PRTL_HANDLE_TABLE_ENTRY NTAPI RtlAllocateHandle(_In_ PRTL_HANDLE_TABLE HandleTable, _Inout_ PULONG Index)
PTHEME_CLASS MSSTYLES_OpenThemeClass(PTHEME_FILE tf, LPCWSTR pszAppName, LPCWSTR pszClassList)
#define FILE_ATTRIBUTE_DIRECTORY
NTSYSAPI BOOLEAN NTAPI RtlFreeHandle(_In_ PRTL_HANDLE_TABLE HandleTable, _In_ PRTL_HANDLE_TABLE_ENTRY Handle)
PTHEME_FILE g_ActiveThemeFile
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
BOOL WINAPI SystemParametersInfoW(_In_ UINT, _In_ UINT, _Inout_opt_ PVOID, _In_ UINT)
GLboolean GLboolean GLboolean b
RTL_HANDLE_TABLE g_UxThemeHandleTable
#define E_PROP_ID_UNSUPPORTED
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
void UXINI_CloseINI(PUXINI_FILE uf)
HTHEME WINAPI OpenThemeDataEx(HWND hwnd, LPCWSTR pszClassList, DWORD flags)
HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWSTR pszSizeName, PTHEME_FILE *tf)
HRESULT WINAPI CloseThemeFile(HTHEMEFILE hThemeFile)
PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf)
WCHAR szTooltip[MAX_PATH+1]
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
static HRESULT UXTHEME_SetWindowProperty(HWND hwnd, ATOM aProp, LPCWSTR pszValue)
static const WCHAR szIniDocumentation[]
HTHEME WINAPI GetWindowTheme(HWND hwnd)
PTHEME_CLASS ValidateHandle(HTHEME hTheme)
static const char *const SysColorsNames[]
PTHEME_PARTSTATE MSSTYLES_FindPartState(PTHEME_CLASS tc, int iPartId, int iStateId, PTHEME_CLASS *tcNext)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
void UXTHEME_InitSystem(HINSTANCE hInst)
GLsizei const GLfloat * value
BOOL WINAPI SetSysColors(_In_ int cElements, _In_reads_(cElements) CONST INT *lpaElements, _In_reads_(cElements) CONST COLORREF *lpaRgbValues)
NTSYSAPI BOOLEAN NTAPI RtlIsValidHandle(_In_ PRTL_HANDLE_TABLE HandleTable, _In_ PRTL_HANDLE_TABLE_ENTRY Handle)
static HTHEME WINAPI OpenThemeDataInternal(PTHEME_FILE ThemeFile, HWND hwnd, LPCWSTR pszClassList, DWORD flags)
static HRESULT UXTHEME_ApplyTheme(PTHEME_FILE tf)
BOOL UXINI_FindSection(PUXINI_FILE uf, LPCWSTR lpName)
WCHAR szThemeFile[MAX_PATH]
#define SPI_SETICONTITLELOGFONT
void MSSTYLES_ParseThemeIni(PTHEME_FILE tf)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define SPIF_UPDATEINIFILE
static const WCHAR keyNonClientMetrics[]
HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars, LPWSTR pszColorBuff, int cchMaxColorChars, LPWSTR pszSizeBuff, int cchMaxSizeChars)
BOOL CALLBACK UXTHEME_broadcast_theme_changed(HWND hWnd, LPARAM enable)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
HRESULT WINAPI OpenThemeFile(LPCWSTR pszThemeFileName, LPCWSTR pszColorName, LPCWSTR pszSizeName, HTHEMEFILE *hThemeFile, DWORD unknown)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HRESULT WINAPI CheckThemeSignature(LPCWSTR pszThemeFileName)
BOOL(CALLBACK * PARSETHEMEINIFILEPROC)(DWORD dwType, LPWSTR pszParam1, LPWSTR pszParam2, LPWSTR pszParam3, DWORD dwParam, LPVOID lpData)
struct _UXTHEME_HANDLE * PUXTHEME_HANDLE
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
#define SPI_GETICONTITLELOGFONT
ATOM WINAPI GlobalAddAtomW(LPCWSTR lpString)
static const WCHAR strColorKey[]
static const WCHAR szDllName[]
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
BOOL WINAPI IsThemeActive(void)
static void UXTHEME_RestoreSystemMetrics(void)
HRESULT WINAPI ApplyTheme(HTHEMEFILE hThemeFile, char *unknown, HWND hWnd)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
GLuint GLuint GLsizei GLenum type
static IPrintDialogCallback callback
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, ENUMTHEMEPROC callback, LPVOID lpData)
HRESULT WINAPI EnumThemeSizes(LPWSTR pszThemeFileName, LPWSTR pszColorName, DWORD dwSizeNum, PTHEMENAMES pszSizeNames)
static void save_sys_colors(HKEY baseKey)
void MSSTYLES_CloseThemeFile(PTHEME_FILE tf)
HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown, PARSETHEMEINIFILEPROC callback, LPVOID lpData)
HTHEME WINAPI OpenThemeDataFromFile(HTHEMEFILE hThemeFile, HWND hwnd, LPCWSTR pszClassList, DWORD flags)
#define RegCloseKey(hKey)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
BOOL(CALLBACK * ENUMTHEMEPROC)(LPVOID lpReserved, LPCWSTR pszThemeFileName, LPCWSTR pszThemeName, LPCWSTR pszToolTip, LPVOID lpReserved2, LPVOID lpData)
static const WCHAR keyIconTitleFont[]
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
#define ERROR_INSUFFICIENT_BUFFER
BOOL WINAPI FindClose(HANDLE hFindFile)