Author: gadamopoulos Date: Fri Apr 3 12:18:07 2015 New Revision: 67018 URL: http://svn.reactos.org/svn/reactos?rev=67018&view=rev Log: [SHELL32] - Explicitly check for pidl type in GetAttributesOf method of CDesktopFolder and CDrivesFolder
Modified: trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp Modified: trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp?rev=67018&r1=67017&r2=67018&view=diff ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] Fri Apr 3 12:18:07 2015 @@ -550,8 +550,12 @@ *rgfInOut &= dwMyComputerAttributes; else if (_ILIsNetHood(apidl[i])) *rgfInOut &= dwMyNetPlacesAttributes; + else if (_ILIsSpecialFolder(apidl[i])) + SHELL32_GetItemAttributes(this, apidl[i], rgfInOut); + else if(_ILIsFolder(apidl[i]) || _ILIsValue(apidl[i])) + SHELL32_GetItemAttributes(this, apidl[i], rgfInOut); else - SHELL32_GetItemAttributes((IShellFolder *)this, apidl[i], rgfInOut); + ERR("Got an unknown pidl type!!!\n"); } } /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp?rev=67018&r1=67017&r2=67018&view=diff ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] Fri Apr 3 12:18:07 2015 @@ -375,11 +375,10 @@ *rgfInOut &= dwDriveAttributes; else if (_ILIsControlPanel(apidl[i])) *rgfInOut &= dwControlPanelAttributes; + else if (_ILIsSpecialFolder(*apidl)) + SHELL32_GetItemAttributes(this, apidl[i], rgfInOut); else - { - pdump(apidl[i]); - SHELL32_GetItemAttributes(this, apidl[i], rgfInOut); - } + ERR("Got unknown pidl type!\n"); } }