[0.4.9][COMCTL32] Fix regression on showing current mouse pointer in main.cpl (#2829)

GetIconInfo() fill info.hbmColor with NULL HBITMAP handle on black/white bitmaps.

CORE-17062

It broke by 0.4.9-dev-719-g b3fb8555bf

fix is squashed port of 2 commits:
0.4.15-dev-534-g 887764e607 (fix)
0.4.15-dev-2705-g a3cadf630a (nitpick)
This commit is contained in:
Joachim Henze 2021-06-16 14:09:21 +02:00
parent ae666420d0
commit af690c1224

View file

@ -94,11 +94,24 @@ static BOOL get_icon_size( HICON handle, SIZE *size )
if (!GetIconInfo(handle, &info))
return FALSE;
#ifdef __REACTOS__
ret = GetObjectW(info.hbmMask, sizeof(bmp), &bmp);
#else
ret = GetObjectW(info.hbmColor, sizeof(bmp), &bmp);
#endif
if (ret)
{
size->cx = bmp.bmWidth;
size->cy = bmp.bmHeight;
#ifdef __REACTOS__
/*
If this structure defines a black and white icon, this bitmask is formatted
so that the upper half is the icon AND bitmask and the lower half is
the icon XOR bitmask.
*/
if (!info.hbmColor)
size->cy /= 2;
#endif
}
DeleteObject(info.hbmMask);