34 'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
35 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
36 'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
37 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\\',
38 'T',
'h',
'e',
'm',
'e',
'M',
'a',
'n',
'a',
'g',
'e',
'r',
'\0'
40static const WCHAR szThemeActive[] = {
'T',
'h',
'e',
'm',
'e',
'A',
'c',
't',
'i',
'v',
'e',
'\0'};
45static const WCHAR szIniDocumentation[] = {
'd',
'o',
'c',
'u',
'm',
'e',
'n',
't',
'a',
't',
'i',
'o',
'n',
'\0'};
111 nBytesToAlloc = dwUnExpDataLen;
116 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
126 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
193 WCHAR szCurrentColor[64];
194 WCHAR szCurrentSize[64];
201 TRACE(
"Loading theme config\n");
202 buffsize =
sizeof(tmp);
210 buffsize =
sizeof(szCurrentColor);
212 szCurrentColor[0] =
'\0';
213 buffsize =
sizeof(szCurrentSize);
215 szCurrentSize[0] =
'\0';
217 szCurrentTheme[0] =
'\0';
221 TRACE(
"Failed to open theme registry key\n");
230 if(
bIsThemeActive(szCurrentTheme, szCurrentColor, szCurrentSize) )
232 TRACE(
"Tried to load active theme again\n");
238 szCurrentColor[0]?szCurrentColor:
NULL,
239 szCurrentSize[0]?szCurrentSize:
NULL,
254 TRACE(
"Theming not active\n");
287 "ButtonAlternateFace",
289 "GradientActiveTitle",
290 "GradientInactiveTitle",
295 {
'C',
'o',
'n',
't',
'r',
'o',
'l',
' ',
'P',
'a',
'n',
'e',
'l',
'\\',
296 'C',
'o',
'l',
'o',
'r',
's',0 };
299 'C',
'a',
'p',
't',
'i',
'o',
'n', 0 };
301 'M',
'e',
't',
'r',
'i',
'c',
's',0 };
316#define NUM_SYS_COLORS (COLOR_MENUBAR+1)
354 NONCLIENTMETRICSW ncm;
373 memset (&ncm, 0,
sizeof (ncm));
374 ncm.cbSize =
sizeof (ncm);
378 memset (&iconTitleFont, 0,
sizeof (iconTitleFont));
382 (
LPBYTE)&iconTitleFont,
sizeof (iconTitleFont));
418 if (
sscanf (colorStr,
"%d %d %d", &
r, &
g, &
b) == 3)
420 sysColsIndices[sysColCount] =
i;
421 sysCols[sysColCount] =
RGB(
r,
g,
b);
449 NONCLIENTMETRICSW ncm;
461 count =
sizeof(iconTitleFont);
482 NONCLIENTMETRICSW ncm;
496 memset (&ncm, 0,
sizeof (ncm));
497 ncm.cbSize =
sizeof (ncm);
502 memset (&iconTitleFont, 0,
sizeof (iconTitleFont));
520 TRACE(
"UXTHEME_ApplyTheme\n");
536 TRACE(
"Writing theme config to registry\n");
558 TRACE(
"Failed to open theme registry key\n");
570 static const WCHAR szWindowTheme[] = {
571 'u',
'x',
'_',
't',
'h',
'e',
'm',
'e',
'\0'
573 static const WCHAR szSubAppName[] = {
574 'u',
'x',
'_',
's',
'u',
'b',
'a',
'p',
'p',
'\0'
576 static const WCHAR szSubIdList[] = {
577 'u',
'x',
'_',
's',
'u',
'b',
'i',
'd',
'l',
's',
't',
'\0'
579 static const WCHAR szDialogThemeEnabled[] = {
580 'u',
'x',
'_',
'd',
'i',
'a',
'l',
'o',
'g',
't',
'h',
'e',
'm',
'e',
'\0'
629 TRACE(
"IsThemeActive\n");
642 buffsize =
sizeof(tmp);
644 bActive = (tmp[0] !=
'0');
660 WCHAR szEnabled[] = {
'0',
'\0'};
662 TRACE(
"(%d)\n", fEnable);
671 if (fEnable) szEnabled[0] =
'1';
707 ERR(
"AddAtomW for %S failed with last error %d!\n", pszValue,
GetLastError());
713 ERR(
"SetPropW for atom %d failed with last error %d\n", aProp,
GetLastError());
727 TRACE(
"property defined, but unable to get value\n");
741 ERR(
"Invalid handle 0x%x!\n", hTheme);
752 WCHAR szAppBuff[256];
753 WCHAR szClassBuff[256];
783 pszUseClassList = pszClassList;
800 TRACE(
"Created handle 0x%x for class 0x%x, app %S, class %S. Count: %d\n", pHandle, pClass, pszAppName, pszUseClassList,
g_cHandles);
815 if ((
flags & OTD_NONCLIENT) == 0)
827 TRACE(
" = %p\n", hTheme);
910 LPWSTR pszColorBuff,
int cchMaxColorChars,
911 LPWSTR pszSizeBuff,
int cchMaxSizeChars)
918 if (pszThemeFileName && dwMaxNameChars)
921 if(cchar > dwMaxNameChars)
926 if (pszColorBuff && cchMaxColorChars)
929 if(cchar > cchMaxColorChars)
934 if (pszSizeBuff && cchMaxSizeChars)
937 if(cchar > cchMaxSizeChars)
970 TRACE(
"(%p)\n", hTheme);
980 TRACE(
"Destroying handle 0x%x for class 0x%x. Count: %d\n", pHandle, pHandle->pClass,
g_cHandles);
1006 TRACE(
"(%p,%d,%d)\n", hTheme, iPartId, iStateId);
1030 const WORD wDocToRes[] = {
1046 pszValueBuff, cchMaxValChars);
1057 for(
i=0;
i<
sizeof(wDocToRes)/
sizeof(wDocToRes[0]);
i+=2) {
1058 if(wDocToRes[
i] == iDocId) {
1059 if(
LoadStringW(
pt->hTheme, wDocToRes[
i+1], pszValueBuff, cchMaxValChars)) {
1073 lstrcpynW(pszValueBuff, lpValue,
min(dwLen+1,cchMaxValChars));
1144 TRACE(
"(%p)\n", hThemeFile);
1200 DWORD dwSizeNameLen)
1205 pszColorName, dwColorNameLen,
1206 pszSizeName, dwSizeNameLen);
1214 lstrcpynW(pszColorName,
pt->pszSelectedColor, dwColorNameLen);
1215 lstrcpynW(pszSizeName,
pt->pszSelectedSize, dwSizeNameLen);
1241 static const WCHAR szStar[] = {
'*',
'.',
'*',
'\0'};
1242 static const WCHAR szFormat[] = {
'%',
's',
'%',
's',
'\\',
'%',
's',
'.',
'm',
's',
's',
't',
'y',
'l',
'e',
's',
'\0'};
1243 static const WCHAR szDisplayName[] = {
'd',
'i',
's',
'p',
'l',
'a',
'y',
'n',
'a',
'm',
'e',
'\0'};
1244 static const WCHAR szTooltip[] = {
't',
'o',
'o',
'l',
't',
'i',
'p',
'\0'};
1259 if ((pathLen > 0) && (pathLen <
MAX_PATH-1) && (szDir[pathLen - 1] !=
'\\'))
1261 szDir[pathLen] =
'\\';
1262 szDir[pathLen+1] = 0;
1273 && !(wfd.cFileName[0] ==
'.' && ((wfd.cFileName[1] ==
'.' && wfd.cFileName[2] == 0) || wfd.cFileName[1] == 0))) {
1279 ERR(
"Failed to get theme name from %S\n",
szPath);
1289 TRACE(
"callback ended enum\n");
1331 UINT resourceId = dwColorNum + 1000;
1341 tmp =
pt->pszAvailColors;
1342 while(dwColorNum && *tmp) {
1346 if(!dwColorNum && *tmp) {
1394 UINT resourceId = dwSizeNum + 3000;
1404 tmp =
pt->pszAvailSizes;
1405 while(dwSizeNum && *tmp) {
1409 if(!dwSizeNum && *tmp) {
ACPI_SIZE strlen(const char *String)
#define RegCloseKey(hKey)
#define ERROR_INSUFFICIENT_BUFFER
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)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define INVALID_HANDLE_VALUE
UINT WINAPI GetAtomNameW(ATOM nAtom, LPWSTR lpBuffer, int nSize)
ATOM WINAPI DeleteAtom(ATOM nAtom)
ATOM WINAPI AddAtomW(LPCWSTR lpString)
ATOM WINAPI GlobalAddAtomW(LPCWSTR lpString)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
DWORD WINAPI TlsAlloc(VOID)
BOOL WINAPI TlsFree(IN DWORD Index)
HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName, LPCWSTR pszPropertyName, LPWSTR pszValueBuff, int cchMaxValChars)
void UXTHEME_LoadTheme(BOOL bLoad)
void WINAPI SetThemeAppProperties(DWORD dwFlags)
HRESULT WINAPI EnableTheming(BOOL fEnable)
static BOOL bIsThemeActive(LPCWSTR pszTheme, LPCWSTR pszColor, LPCWSTR pszSize)
static const WCHAR strColorKey[]
static const WCHAR keyIconTitleFont[]
DWORD gdwErrorInfoTlsIndex
HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown, PARSETHEMEINIFILEPROC callback, LPVOID lpData)
DWORD WINAPI GetThemeAppProperties(void)
static void UXTHEME_SaveSystemMetrics(void)
static const WCHAR szSizeName[]
static const WCHAR keyNonClientMetrics[]
static const struct BackupSysParam backupSysParams[]
static LPWSTR UXTHEME_GetWindowProperty(HWND hwnd, ATOM aProp, LPWSTR pszBuffer, int dwLen)
HTHEME WINAPI OpenThemeDataEx(HWND hwnd, LPCWSTR pszClassList, DWORD flags)
static const WCHAR szThemeManager[]
static HTHEME WINAPI OpenThemeDataInternal(PTHEME_FILE ThemeFile, HWND hwnd, LPCWSTR pszClassList, DWORD flags)
BOOL CALLBACK UXTHEME_broadcast_theme_changed(HWND hWnd, LPARAM enable)
static const WCHAR szDllName[]
HTHEME WINAPI OpenThemeDataFromFile(HTHEMEFILE hThemeFile, HWND hwnd, LPCWSTR pszClassList, DWORD flags)
HRESULT WINAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList)
HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars, LPWSTR pszColorBuff, int cchMaxColorChars, LPWSTR pszSizeBuff, int cchMaxSizeChars)
RTL_HANDLE_TABLE g_UxThemeHandleTable
DWORD WINAPI QueryThemeServices(void)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
static HRESULT UXTHEME_SetActiveTheme(PTHEME_FILE tf)
HRESULT WINAPI ApplyTheme(HTHEMEFILE hThemeFile, char *unknown, HWND hWnd)
static void UXTHEME_RestoreSystemMetrics(void)
BOOL WINAPI IsThemePartDefined(HTHEME hTheme, int iPartId, int iStateId)
static const WCHAR szIniDocumentation[]
static HRESULT UXTHEME_SetWindowProperty(HWND hwnd, ATOM aProp, LPCWSTR pszValue)
HRESULT WINAPI OpenThemeFile(LPCWSTR pszThemeFileName, LPCWSTR pszColorName, LPCWSTR pszSizeName, HTHEMEFILE *hThemeFile, DWORD unknown)
static BOOL CALLBACK UXTHEME_send_theme_changed(HWND hWnd, LPARAM enable)
HRESULT WINAPI EnumThemeColors(LPWSTR pszThemeFileName, LPWSTR pszSizeName, DWORD dwColorNum, PTHEMENAMES pszColorNames)
HTHEME WINAPI GetWindowTheme(HWND hwnd)
HRESULT WINAPI EnumThemeSizes(LPWSTR pszThemeFileName, LPWSTR pszColorName, DWORD dwSizeNum, PTHEMENAMES pszSizeNames)
static const WCHAR keyGradientCaption[]
HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, ENUMTHEMEPROC callback, LPVOID lpData)
void UXTHEME_InitSystem(HINSTANCE hInst)
static const WCHAR szThemeActive[]
HRESULT WINAPI CloseThemeFile(HTHEMEFILE hThemeFile)
PTHEME_FILE g_ActiveThemeFile
static DWORD dwThemeAppProperties
ATOM atDialogThemeEnabled
static HRESULT UXTHEME_ApplyTheme(PTHEME_FILE tf)
static void UXTHEME_BackupSystemMetrics(void)
static const char *const SysColorsNames[]
BOOL WINAPI IsThemeActive(void)
HRESULT WINAPI HitTestThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, DWORD dwOptions, const RECT *pRect, HRGN hrgn, POINT ptTest, WORD *pwHitTestCode)
static DWORD query_reg_path(HKEY hKey, LPCWSTR lpszValue, LPVOID pvData)
PTHEME_CLASS ValidateHandle(HTHEME hTheme)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
void UXTHEME_UnInitSystem(HINSTANCE hInst)
static const WCHAR keyFlatMenus[]
static void save_sys_colors(HKEY baseKey)
BOOL WINAPI IsAppThemed(void)
static const WCHAR szColorName[]
HRESULT WINAPI GetThemeDefaults(LPCWSTR pszThemeFileName, LPWSTR pszColorName, DWORD dwColorNameLen, LPWSTR pszSizeName, DWORD dwSizeNameLen)
HRESULT WINAPI CheckThemeSignature(LPCWSTR pszThemeFileName)
VOID UXTHEME_DeleteParseErrorInfo(VOID)
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
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
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define sprintf(buf, format,...)
static IPrintDialogCallback callback
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
PTHEME_PARTSTATE MSSTYLES_FindPartState(PTHEME_CLASS tc, int iPartId, int iStateId, PTHEME_CLASS *tcNext)
PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf)
HRESULT MSSTYLES_ReferenceTheme(PTHEME_FILE tf)
PTHEME_CLASS MSSTYLES_OpenThemeClass(PTHEME_FILE tf, LPCWSTR pszAppName, LPCWSTR pszClassList)
void MSSTYLES_CloseThemeFile(PTHEME_FILE tf)
HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWSTR pszSizeName, PTHEME_FILE *tf)
HRESULT MSSTYLES_CloseThemeClass(PTHEME_CLASS tc)
void MSSTYLES_ParseThemeIni(PTHEME_FILE tf)
NTSYSAPI VOID NTAPI RtlInitializeHandleTable(_In_ ULONG TableSize, _In_ ULONG HandleSize, _In_ PRTL_HANDLE_TABLE HandleTable)
NTSYSAPI BOOLEAN NTAPI RtlFreeHandle(_In_ PRTL_HANDLE_TABLE HandleTable, _In_ PRTL_HANDLE_TABLE_ENTRY Handle)
NTSYSAPI PRTL_HANDLE_TABLE_ENTRY NTAPI RtlAllocateHandle(_In_ PRTL_HANDLE_TABLE HandleTable, _Inout_ PULONG Index)
NTSYSAPI BOOLEAN NTAPI RtlIsValidHandle(_In_ PRTL_HANDLE_TABLE HandleTable, _In_ PRTL_HANDLE_TABLE_ENTRY Handle)
#define FILE_ATTRIBUTE_DIRECTORY
static const WCHAR szName[]
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
WCHAR szThemeFile[MAX_PATH]
RTL_HANDLE_TABLE_ENTRY Handle
WCHAR szDisplayName[MAX_PATH+1]
WCHAR szTooltip[MAX_PATH+1]
BOOL MSSTYLES_LookupProperty(LPCWSTR pszPropertyName, int *dwPrimitive, int *dwId)
BOOL UXINI_FindSection(PUXINI_FILE uf, LPCWSTR lpName)
BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen)
void UXINI_CloseINI(PUXINI_FILE uf)
struct _UXTHEME_HANDLE * PUXTHEME_HANDLE
BOOL(CALLBACK * ENUMTHEMEPROC)(LPVOID lpReserved, LPCWSTR pszThemeFileName, LPCWSTR pszThemeName, LPCWSTR pszToolTip, LPVOID lpReserved2, LPVOID lpData)
BOOL(CALLBACK * PARSETHEMEINIFILEPROC)(DWORD dwType, LPWSTR pszParam1, LPWSTR pszParam2, LPWSTR pszParam3, DWORD dwParam, LPVOID lpData)
#define E_PROP_ID_UNSUPPORTED
DWORD WINAPI GetLastError(void)
#define TLS_OUT_OF_INDEXES
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ ULONG _In_opt_ PVOID pvData
#define HRESULT_FROM_WIN32(x)
#define HKEY_CURRENT_USER
DWORD WINAPI GetSysColor(_In_ int)
BOOL WINAPI IsWindow(_In_opt_ HWND)
HANDLE WINAPI RemovePropW(_In_ HWND, _In_ LPCWSTR)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
BOOL WINAPI SetSysColors(_In_ int cElements, _In_reads_(cElements) CONST INT *lpaElements, _In_reads_(cElements) CONST COLORREF *lpaRgbValues)
#define SPI_GETICONTITLELOGFONT
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
#define SPIF_UPDATEINIFILE
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
#define SPI_SETICONTITLELOGFONT
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
_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
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList