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");
         }
     }
 


Reply via email to