uxtheme: Avoid memory leaks.
A THEME_FILE struct and four global ATOMs are leaked when unloading uxtheme. Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
b5abd53494
commit
6f00a2983a
|
@ -31,14 +31,18 @@ WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
|||
/***********************************************************************/
|
||||
|
||||
/* For the moment, do nothing here. */
|
||||
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
|
||||
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, void *reserved)
|
||||
{
|
||||
TRACE("%p 0x%x %p\n", hInstDLL, fdwReason, lpv);
|
||||
TRACE("%p 0x%x %p\n", hInstDLL, fdwReason, reserved);
|
||||
switch(fdwReason) {
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls(hInstDLL);
|
||||
UXTHEME_InitSystem(hInstDLL);
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
if (reserved) break;
|
||||
UXTHEME_UninitSystem();
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -509,6 +509,16 @@ void UXTHEME_InitSystem(HINSTANCE hInst)
|
|||
UXTHEME_LoadTheme();
|
||||
}
|
||||
|
||||
void UXTHEME_UninitSystem(void)
|
||||
{
|
||||
MSSTYLES_SetActiveTheme(NULL, FALSE);
|
||||
|
||||
GlobalDeleteAtom(atWindowTheme);
|
||||
GlobalDeleteAtom(atSubAppName);
|
||||
GlobalDeleteAtom(atSubIdList);
|
||||
GlobalDeleteAtom(atDialogThemeEnabled);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* IsAppThemed (UXTHEME.@)
|
||||
*/
|
||||
|
|
|
@ -95,6 +95,7 @@ HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown,
|
|||
ParseThemeIniFileProc callback, LPVOID lpData) DECLSPEC_HIDDEN;
|
||||
|
||||
extern void UXTHEME_InitSystem(HINSTANCE hInst) DECLSPEC_HIDDEN;
|
||||
extern void UXTHEME_UninitSystem(void) DECLSPEC_HIDDEN;
|
||||
|
||||
/* No alpha blending */
|
||||
#define ALPHABLEND_NONE 0
|
||||
|
|
Loading…
Reference in New Issue