shell32: fix folder icon index when read from registry

Martin Fuchs martin-fuchs at gmx.net
Fri Jan 6 03:13:07 CST 2006


Any thing wrong with this patch?

On 31.12.2005 21:31:25 Martin Fuchs wrote:
> Changelog:
> fix folder icon index when read from registry


> Index: folders.c
> ===================================================================
> RCS file: /home/wine/wine/dlls/shell32/folders.c,v
> retrieving revision 1.66
> diff -u -p -d -r1.66 folders.c
> --- folders.c	26 Aug 2005 10:05:35 -0000	1.66
> +++ folders.c	31 Dec 2005 20:29:30 -0000
> @@ -166,7 +166,7 @@ static HRESULT getIconLocationForFolder(
>   LPWSTR szIconFile, UINT cchMax, int *piIndex, UINT *pwFlags)
>  {
>      IExtractIconWImpl *This = (IExtractIconWImpl *)iface;
> -    DWORD dwNr;
> +    DWORD dwNr;	/*TODO: change to int type */
>      WCHAR wszPath[MAX_PATH];
>      WCHAR wszCLSIDValue[CHARS_IN_GUID];
>      static const WCHAR shellClassInfo[] = {
>  '.','S','h','e','l','l','C','l','a','s','s','I','n','f','o',0 };
> @@ -202,9 +202,13 @@ static HRESULT getIconLocationForFolder(
>          if (!HCR_GetDefaultIconW(folder, szIconFile, cchMax, &dwNr))
>          {
>              lstrcpynW(szIconFile, swShell32Name, cchMax);
> -            dwNr = IDI_SHELL_FOLDER;
> +            dwNr = (DWORD)-IDI_SHELL_FOLDER;
>          }
> -        *piIndex = -((uFlags & GIL_OPENICON) ? dwNr + 1 : dwNr);
> +
> +        if (uFlags & GIL_OPENICON)
> +            *piIndex = (int)dwNr<0? (int)dwNr-1: dwNr+1;
> +        else
> +            *piIndex = dwNr;
>      }
>      return S_OK;
>  }




More information about the wine-devel mailing list