From: Giannis Adamopoulos Date: Sun, 6 Nov 2016 22:25:02 +0000 (+0000) Subject: [SHELL32] X-Git-Tag: ReactOS-0.4.4-FOSDEM2017~374 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=f4a1861aabfe6c6715a79eacdb397e7aa6076d3f [SHELL32] - SHOpenFolderAndSelectItems: Take into account buggy applications like firefox that like to pass full pidls in a PCUITEMID_CHILD_ARRAY. svn path=/trunk/; revision=73160 --- diff --git a/reactos/dll/win32/shell32/shlfolder.cpp b/reactos/dll/win32/shell32/shlfolder.cpp index 44ba710231c..59b4e05b43d 100644 --- a/reactos/dll/win32/shell32/shlfolder.cpp +++ b/reactos/dll/win32/shell32/shlfolder.cpp @@ -528,9 +528,21 @@ SHOpenFolderAndSelectItems(LPITEMIDLIST pidlFolder, 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 psfDesktop;