Author: dquintana
Date: Wed Mar 12 12:34:44 2014
New Revision: 62483
URL: 
http://svn.reactos.org/svn/reactos?rev=62483&view=rev
Log:
[SHELL32]
* SHGetImageList should not return a duplicated ImageList. In Windows the pointers
returned by Shell_GetImageLists match the pointers returned by SHGetImageList for
SHIL_SMALL and SHIL_LARGE.
[RSHELL]
* Remove two obsolete debug prints.
Modified:
    branches/shell-experiments/base/shell/rshell/CStartMenu.cpp
    branches/shell-experiments/dll/win32/shell32/shellord.cpp
Modified: branches/shell-experiments/base/shell/rshell/CStartMenu.cpp
URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rs…
==============================================================================
--- branches/shell-experiments/base/shell/rshell/CStartMenu.cpp [iso-8859-1] (original)
+++ branches/shell-experiments/base/shell/rshell/CStartMenu.cpp [iso-8859-1] Wed Mar 12
12:34:44 2014
@@ -267,10 +267,8 @@
         case SMC_GETOBJECT:
             return OnGetObject(psmd, *reinterpret_cast<IID *>(wParam),
reinterpret_cast<void **>(lParam));
         case SMC_EXEC:
-            DbgPrint("SMC_EXEC\n");
             return OnExec(psmd);
         case SMC_SFEXEC:
-            DbgPrint("SMC_SFEXEC\n");
             m_pTrayPriv->Execute(psmd->psf, psmd->pidlItem);
             break;
         }
Modified: branches/shell-experiments/dll/win32/shell32/shellord.cpp
URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/she…
==============================================================================
--- branches/shell-experiments/dll/win32/shell32/shellord.cpp   [iso-8859-1] (original)
+++ branches/shell-experiments/dll/win32/shell32/shellord.cpp   [iso-8859-1] Wed Mar 12
12:34:44 2014
@@ -2265,7 +2265,10 @@
     }
     Shell_GetImageLists(&hLarge, &hSmall);
-    hNew = ImageList_Duplicate(iImageList == SHIL_LARGE ? hLarge : hSmall);
+
+    // Duplicating the imagelist causes the start menu items not to draw on the first
show.
+    // Was the Duplicate necessary for some reason? I believe Windows returns the raw
pointer here.
+    hNew = /*ImageList_Duplicate*/(iImageList == SHIL_LARGE ? hLarge : hSmall);
     /* Get the interface for the new image list */
     if (hNew)