Author: gadamopoulos
Date: Thu Nov 21 11:28:53 2013
New Revision: 61064
URL:
http://svn.reactos.org/svn/reactos?rev=61064&view=rev
Log:
[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
Modified:
trunk/reactos/base/shell/explorer-new/explorer.c
trunk/reactos/include/psdk/shlobj_undoc.h
Modified: trunk/reactos/base/shell/explorer-new/explorer.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer-new/ex…
==============================================================================
--- trunk/reactos/base/shell/explorer-new/explorer.c [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer-new/explorer.c [iso-8859-1] Thu Nov 21 11:28:53
2013
@@ -410,6 +410,15 @@
if (CreateShellDesktop)
{
+ /* Initialize shell dde support */
+ ShellDDEInit(TRUE);
+
+ /* Initialize shell icons */
+ FileIconInit(TRUE);
+
+ /* Initialize CLSID_ShellWindows class */
+ WinList_Init();
+
if (RegisterTrayWindowClass() && RegisterTaskSwitchWndClass())
{
Tray = CreateTrayWindow();
Modified: trunk/reactos/include/psdk/shlobj_undoc.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/shlobj_undoc.…
==============================================================================
--- trunk/reactos/include/psdk/shlobj_undoc.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/shlobj_undoc.h [iso-8859-1] Thu Nov 21 11:28:53 2013
@@ -754,6 +754,10 @@
#define ILGDN_FORPARSING 0
#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);