[explorer_new]

- call ShellDDEInit, FileIconInit and WinList_Init while initializing
- Calling ShellDDEInit fixes cases like pressing Explore in a folder context menu from a file open dialog (before this it just hanged)
- We also need to call FileIconInit in order to initialize the shell icons properly. Before this Shell_GetImageLists called FileIconInit in case it was not called
- Calling WinList_Init should make CLSID_ShellWindows work but it fails for now. CLSID_ShellWindows is needed in cases like opening a second time My computer from desktop should activates the existing My computer window and it is also needed for SHOpenFolderAndSelectItems in order to work

svn path=/trunk/; revision=61064
This commit is contained in:
Giannis Adamopoulos 2013-11-21 11:28:53 +00:00
parent fdd32e1c1b
commit 400a835c42
2 changed files with 13 additions and 0 deletions

View file

@ -410,6 +410,15 @@ _tWinMain(IN HINSTANCE hInstance,
if (CreateShellDesktop)
{
/* Initialize shell dde support */
ShellDDEInit(TRUE);
/* Initialize shell icons */
FileIconInit(TRUE);
/* Initialize CLSID_ShellWindows class */
WinList_Init();
if (RegisterTrayWindowClass() && RegisterTaskSwitchWndClass())
{
Tray = CreateTrayWindow();

View file

@ -755,6 +755,10 @@ BOOL WINAPI ILGetDisplayNameEx(IShellFolder *psf, LPCITEMIDLIST pidl, LPVOID pat
#define ILGDN_NORMAL 1
#define ILGDN_INFOLDER 2
BOOL WINAPI FileIconInit(BOOL bFullInit);
void WINAPI ShellDDEInit(BOOL bInit);
DWORD WINAPI WinList_Init(void);
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
BOOL WINAPI SHDesktopMessageLoop(HANDLE);