[SHELL32] Don't call CoInitialize in DllMain, bad things happen when calling into dll's that are being loaded! CORE-12443 #comment Please retest!

svn path=/trunk/; revision=73434
This commit is contained in:
Mark Jansen 2016-12-06 21:18:17 +00:00
parent cce01fa95c
commit 54e99fcd1b
3 changed files with 4 additions and 3 deletions

View file

@ -87,7 +87,7 @@ static HRESULT getIconLocationForFolder(IShellFolder * psf, LPCITEMIDLIST pidl,
return S_OK;
}
void InitIconOverlays(void)
static void InitIconOverlays(void)
{
HKEY hKey;
DWORD dwIndex, dwResult, dwSize;
@ -161,6 +161,8 @@ GetIconOverlay(LPCITEMIDLIST pidl, WCHAR * wTemp, int* pIndex)
if(!SHGetPathFromIDListW(pidl, szPath))
return FALSE;
if (!Handlers)
InitIconOverlays();
HighestPriority = 101;
IconIndex = NumIconOverlayHandlers;

View file

@ -307,9 +307,9 @@ STDAPI_(BOOL) DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID fImpLoad)
InitCtrls.dwICC = ICC_WIN95_CLASSES | ICC_DATE_CLASSES | ICC_USEREX_CLASSES;
InitCommonControlsEx(&InitCtrls);
/* Bad idea, initialization in DllMain! */
SIC_Initialize();
InitChangeNotifications();
InitIconOverlays();
}
else if (dwReason == DLL_PROCESS_DETACH)
{

View file

@ -109,7 +109,6 @@ HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl)
/* Change Notification */
void InitChangeNotifications(void) DECLSPEC_HIDDEN;
void FreeChangeNotifications(void) DECLSPEC_HIDDEN;
void InitIconOverlays(void);
/* file operation */
#define ASK_DELETE_FILE 1