[PATCH 1/7] comctl32/taskdialog: Add standard resources.

Nikolay Sivov nsivov at codeweavers.com
Mon May 21 05:35:44 CDT 2018


On 5/21/2018 1:07 PM, Zhiyi Zhang wrote:
>
> On Mon 5 21 15:58, Nikolay Sivov wrote:
>> On 05/17/2018 03:45 PM, Zhiyi Zhang wrote:
>>
>>> Possibly. But I don't think that's good idea.
>> Why not?
>>
> I was thinking better not have resource dependencies to user32.dll
> if we can add it to comctl32.dll.

You don't need to load using user32 hinstance explicitly, if that's what
you mean. LoadIcon(NULL, IDI_SHIELD) implies it.

>
>>> commctrl.h has
>>>> #define TD_WARNING_ICON        MAKEINTRESOURCEW(-1)
>>>> #define TD_ERROR_ICON          MAKEINTRESOURCEW(-2)
>>>> #define TD_INFORMATION_ICON    MAKEINTRESOURCEW(-3)
>>>> #define TD_SHIELD_ICON         MAKEINTRESOURCEW(-4)
>>> So that says it expect it from comctl32.dll.
>> It doesn't say that. Simple test like this fails for me on Windows:
>>
>> ---
>> +    {
>> +        HICON hicon = LoadIconA(hinst, (WORD)-1);
>> +        ok(hicon != NULL, "Unexpected hicon %p\n", hicon);
>> +        hicon = LoadIconA(hinst, (WORD)-2);
>> +        ok(hicon != NULL, "Unexpected hicon %p\n", hicon);
>> +        hicon = LoadIconA(hinst, (WORD)-3);
>> +        ok(hicon != NULL, "Unexpected hicon %p\n", hicon);
>> +        hicon = LoadIconA(hinst, (WORD)-4);
>> +        ok(hicon != NULL, "Unexpected hicon %p\n", hicon);
>> +    }
>> ---
>>
> Right. However it also fails on user32.dll instance.
> user32.dll do have those icons, with different ordinals.
> I guess we could do a redirection to use resources in user32.dll.
> What do you think?

I think you only need to map from TD_* constants to IDI_* constants
using a simple switch.

>
>>> And as for arrows bitmaps. Their id need to be in order
>>> for expando control implementation code to load them easily.
>> We'll need better looking arrows eventually anyway, either embedded, or created on the fly.
>>
> How do you want me proceed then? Any tips?
> I guess we could draw the arrows with code. It's just requires some effort.
>
>>> It's better if we make a copy.
>>>
>>> On Thu 5 17 17:11, Nikolay Sivov wrote:
>>>> On 05/16/2018 07:14 PM, Zhiyi Zhang wrote:
>>>>> Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
>>>>> ---
>>>>>    dlls/comctl32/comctl32.h                   |  18 +
>>>>>    dlls/comctl32/comctl32.rc                  |  36 ++
>>>>>    dlls/comctl32/idb_td_downarrow_hovered.bmp | Bin 0 -> 322 bytes
>>>>>    dlls/comctl32/idb_td_downarrow_normal.bmp  | Bin 0 -> 322 bytes
>>>>>    dlls/comctl32/idb_td_downarrow_pressed.bmp | Bin 0 -> 322 bytes
>>>>>    dlls/comctl32/idb_td_uparrow_hovered.bmp   | Bin 0 -> 322 bytes
>>>>>    dlls/comctl32/idb_td_uparrow_normal.bmp    | Bin 0 -> 322 bytes
>>>>>    dlls/comctl32/idb_td_uparrow_pressed.bmp   | Bin 0 -> 322 bytes
>>>>>    dlls/comctl32/idi_td_error.ico             | Bin 0 -> 5430 bytes
>>>>>    dlls/comctl32/idi_td_error.svg             | 489 +++++++++++++++++++++
>>>>>    dlls/comctl32/idi_td_info.ico              | Bin 0 -> 5430 bytes
>>>>>    dlls/comctl32/idi_td_info.svg              | 385 ++++++++++++++++
>>>>>    dlls/comctl32/idi_td_shield.ico            | Bin 0 -> 5430 bytes
>>>>>    dlls/comctl32/idi_td_shield.svg            | 373 ++++++++++++++++
>>>>>    dlls/comctl32/idi_td_warning.ico           | Bin 0 -> 5430 bytes
>>>>>    dlls/comctl32/idi_td_warning.svg           | 415 +++++++++++++++++
>>>>>    16 files changed, 1716 insertions(+)
>>>>>    create mode 100644 dlls/comctl32/idb_td_downarrow_hovered.bmp
>>>>>    create mode 100644 dlls/comctl32/idb_td_downarrow_normal.bmp
>>>>>    create mode 100644 dlls/comctl32/idb_td_downarrow_pressed.bmp
>>>>>    create mode 100644 dlls/comctl32/idb_td_uparrow_hovered.bmp
>>>>>    create mode 100644 dlls/comctl32/idb_td_uparrow_normal.bmp
>>>>>    create mode 100644 dlls/comctl32/idb_td_uparrow_pressed.bmp
>>>>>    create mode 100644 dlls/comctl32/idi_td_error.ico
>>>>>    create mode 100644 dlls/comctl32/idi_td_error.svg
>>>>>    create mode 100644 dlls/comctl32/idi_td_info.ico
>>>>>    create mode 100644 dlls/comctl32/idi_td_info.svg
>>>>>    create mode 100644 dlls/comctl32/idi_td_shield.ico
>>>>>    create mode 100644 dlls/comctl32/idi_td_shield.svg
>>>>>    create mode 100644 dlls/comctl32/idi_td_warning.ico
>>>>>    create mode 100644 dlls/comctl32/idi_td_warning.svg
>>>>>
>>>>>
>>>> Can we load this from user32?
>>>>
>>>>




More information about the wine-devel mailing list