ChangeSet ID: 21143 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/07 14:11:27
Modified files: dlls/shell32 : brsfolder.c
Log message: Michael Jung mjung@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); }