wine/dlls/shell32 brsfolder.c

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 7 14:11:27 CST 2005


ChangeSet ID:	21143
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/07 14:11:27

Modified files:
	dlls/shell32   : brsfolder.c 

Log message:
	Michael Jung <mjung at iss.tu-darmstadt.de>
	More robust code for querying ShellFolder attributes (some
	ShellFolders ignore the flag mask in GetAttributesOf).

Patch: http://cvs.winehq.org/patch.py?id=21143

Old revision  New revision  Changes     Path
 1.64          1.65          +5 -2       wine/dlls/shell32/brsfolder.c

Index: wine/dlls/shell32/brsfolder.c
diff -u -p wine/dlls/shell32/brsfolder.c:1.64 wine/dlls/shell32/brsfolder.c:1.65
--- wine/dlls/shell32/brsfolder.c:1.64	7 Nov 2005 20:11:27 -0000
+++ wine/dlls/shell32/brsfolder.c	7 Nov 2005 20:11:27 -0000
@@ -388,7 +388,7 @@ static void BrsFolder_CheckValidSelectio
         dwAttributes = SFGAO_FILESYSANCESTOR | SFGAO_FILESYSTEM;
         r = IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1,
                                 (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes);
-        if (FAILED(r) || !dwAttributes)
+        if (FAILED(r) || !(dwAttributes & (SFGAO_FILESYSANCESTOR|SFGAO_FILESYSTEM)))
             bEnabled = FALSE;
     }
     if (lpBrowseInfo->ulFlags & BIF_RETURNONLYFSDIRS)
@@ -396,8 +396,11 @@ static void BrsFolder_CheckValidSelectio
         dwAttributes = SFGAO_FOLDER | SFGAO_FILESYSTEM;
         r = IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1,
                                 (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes);
-        if (FAILED(r) || (dwAttributes != (SFGAO_FOLDER | SFGAO_FILESYSTEM)))
+        if (FAILED(r) || 
+            ((dwAttributes & (SFGAO_FOLDER|SFGAO_FILESYSTEM)) != (SFGAO_FOLDER|SFGAO_FILESYSTEM)))
+        {
             bEnabled = FALSE;
+        }
     }
     SendMessageW(info->hWnd, BFFM_ENABLEOK, 0, (LPARAM)bEnabled);
 }



More information about the wine-cvs mailing list