[PATCH] user32: Implement InternalGetWindowIcon().

Alexandre Julliard julliard at winehq.org
Thu May 20 03:11:24 CDT 2021


Zebediah Figura <z.figura12 at gmail.com> writes:

> +    switch (type)
> +    {
> +        case ICON_BIG:
> +            ret = win->hIcon;
> +            if (!ret) ret = (HICON)GetClassLongPtrW( hwnd, GCLP_HICON );
> +            break;
> +
> +        case ICON_SMALL:
> +            ret = win->hIconSmall;
> +            if (!ret) ret = (HICON)GetClassLongPtrW( hwnd, GCLP_HICONSM );
> +            break;
> +
> +        case ICON_SMALL2:
> +            ret = win->hIconSmall ? win->hIconSmall : win->hIconSmall2;
> +            if (!ret) ret = (HICON)GetClassLongPtrW( hwnd, GCLP_HICONSM );
> +            break;
> +
> +        default:
> +            SetLastError( ERROR_INVALID_PARAMETER );
> +            WIN_ReleasePtr( win );
> +            return 0;
> +    }
> +
> +    if (!ret) ret = LoadIconW( 0, (const WCHAR *)IDI_WINLOGO );

For the small icon case, you may want to fall back to the big icon
instead, and/or return a smaller IDI_WINLOGO, cf. NC_IconForWindow().
Testing the resulting icon sizes would also be interesting.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list