[PATCH v4 1/4] include: Add definition for IShellItemImageFactory.

Nikolay Sivov nsivov at codeweavers.com
Sun Apr 24 08:05:35 CDT 2022



On 4/23/22 20:53, Jinoh Kang wrote:
> +    [v1_enum] enum _SIIGBF {
> +        SIIGBF_RESIZETOFIT     = 0x00000000,
> +        SIIGBF_BIGGERSIZEOK    = 0x00000001,
> +        SIIGBF_MEMORYONLY      = 0x00000002,
> +        SIIGBF_ICONONLY        = 0x00000004,
> +        SIIGBF_THUMBNAILONLY   = 0x00000008,
> +        SIIGBF_INCACHEONLY     = 0x00000010,
> +        SIIGBF_CROPTOSQUARE    = 0x00000020,
> +        SIIGBF_WIDETHUMBNAILS  = 0x00000040,
> +        SIIGBF_ICONBACKGROUND  = 0x00000080,
> +        SIIGBF_SCALEUP         = 0x00000100,
> +    };
> +    typedef DWORD SIIGBF;
I see this using int instead of DWORD in 10.0.22000.0, did it change?

> Because you have to convert potentially-transparent HICON to HBITMAP with alpha channel, which is quite a complicated feat.
>
> 1. HICON can take many pixel formats, ranging from 32-bit ARGB and monochrome with mask.
> 2. hbmColor and hbmMask combinations aren't exactly simple to handle.
> 3. Windows always seems to output a 32-bit ARGB bitmap. GDI routines alone aren't particularly suited for the task (GdiAlphaBlend works with PARGB, not ARGB).
>
> Only WIC and GDI+ has functions to handle most of these.
Same SDK claims output could be RGB24, RGB32, or PARGB32, but it can't 
be trusted of course.



More information about the wine-devel mailing list