[PATCH v4 4/4] shell32: Partially implement IShellItemImageFactory (icon only, no thumbnail).

Jin-oh Kang jinoh.kang.kr at gmail.com
Sun Apr 24 00:47:00 CDT 2022


On Sun, Apr 24, 2022, 2:18 PM Jinoh Kang <jinoh.kang.kr at gmail.com> wrote:

> On 4/24/22 06:27, Nikolay Sivov wrote:
> >
> >
> > On 4/23/22 20:53, Jinoh Kang wrote:
> >> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52673
> >> Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
> >> ---
> >>
> >> Notes:
> >>      v1 -> v2: no changes
> >>           v3 -> v4:
> >>      - Remove patch "shell32: Factor out ShellItem_get_uiobject."
> >>      - Use IShellItem2_BindToHandler instead of factoring out
> >>        ShellItem_get_uiobject
> >>      - Use CreateCompatibleDC(NULL) instead of GetDC(NULL)
> >>      - Remove new dependency on win32u, use GetIconInfo instead
> >>      - Remove new dependency on windowcodecs, use gdiplus instead
> >>
> > I probably missed earlier iterations, but why do you need to use gdiplus
> at all?
>
> 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.
>

s/and/to/

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.
>

have*

Also, shellole.c already imports GDI+ APIs.


> --
> Sincerely,
> Jinoh Kang
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20220424/d8c28c83/attachment.htm>


More information about the wine-devel mailing list