shell32: SHELL32_GetItemAttributes()

Michael Jung mjung at iss.tu-darmstadt.de
Tue Nov 1 01:40:38 CST 2005


Hi Martin,

On Tuesday 01 November 2005 02:40, Martin Fuchs wrote:
> Changelog:
> correctly call HCR_GetFolderAttributes() in SHELL32_GetItemAttributes()
>
>
> Index: shlfolder.c
> ===================================================================
> RCS file: /home/wine/wine/dlls/shell32/shlfolder.c,v
> retrieving revision 1.104
> diff -u -p -d -r1.104 shlfolder.c
> --- shlfolder.c	20 Jul 2005 10:29:05 -0000	1.104
> +++ shlfolder.c	1 Nov 2005 01:22:38 -0000
> @@ -411,14 +411,13 @@ HRESULT SHELL32_GetItemAttributes (IShel
>          *pdwAttributes &= dwSupportedAttr;
>      }
>
> +    dwAttributes = *pdwAttributes;
> +
>      if (_ILIsDrive (pidl)) {
>          *pdwAttributes &=
> SFGAO_HASSUBFOLDER|SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR|
> SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANLINK;
> -    } else if (_ILGetGUIDPointer (pidl)) {
> -	if (!HCR_GetFolderAttributes (pidl, pdwAttributes)) {
> -	  *pdwAttributes &= SFGAO_HASSUBFOLDER|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR|
> -	    SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANRENAME|SFGAO_CANLINK; 
> -	} 

Those are default flags, for the case that HCR_GetFolderAttributes didn't find 
a registry entry. Are you sure those aren't necessary? Perhaps we should push 
them into HCR_GetFolderAttributes, though.

> + } else if(_ILGetGUIDPointer(pidl) && HCR_GetFolderAttributes(pidl, 
&dwAttributes)){ 
> +	*pdwAttributes = dwAttributes; 
>      } else if (_ILGetDataPointer (pidl)) { 
>  	dwAttributes = _ILGetFileAttributes (pidl, NULL, 0);

Bye,
-- 
Michael Jung
mjung at iss.tu-darmstadt.de



More information about the wine-devel mailing list