Author: gadamopoulos
Date: Sun Nov  6 22:25:02 2016
New Revision: 73160

URL: http://svn.reactos.org/svn/reactos?rev=73160&view=rev
Log:
[SHELL32]
- SHOpenFolderAndSelectItems: Take into account buggy applications like firefox 
that like to pass full pidls in a PCUITEMID_CHILD_ARRAY.

Modified:
    trunk/reactos/dll/win32/shell32/shlfolder.cpp

Modified: trunk/reactos/dll/win32/shell32/shlfolder.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shlfolder.cpp?rev=73160&r1=73159&r2=73160&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/shlfolder.cpp       [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shlfolder.cpp       [iso-8859-1] Sun Nov  6 
22:25:02 2016
@@ -528,9 +528,21 @@
     ERR("SHOpenFolderAndSelectItems() is hackplemented\n");
     PCIDLIST_ABSOLUTE pidlItem;
     if (cidl)
-        pidlItem = ILCombine(pidlFolder, apidl[0]);
+    {
+        /* Firefox sends a full pidl here dispite the fact it is a 
PCUITEMID_CHILD_ARRAY -_- */
+        if (ILGetNext(apidl[0]) != NULL)
+        {
+            pidlItem = apidl[0];
+        }
+        else
+        {
+            pidlItem = ILCombine(pidlFolder, apidl[0]);
+        }
+    }
     else
+    {
         pidlItem = pidlFolder;
+    }
 
     CComPtr<IShellFolder> psfDesktop;
 


Reply via email to