[0.4.14][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

cherry picked from commit 0.4.15-dev-534-g
887764e607
This commit is contained in:
Jose Carlos Jesus 2020-05-21 20:52:13 +01:00 committed by Joachim Henze
parent 6302156cb1
commit 71ec0f6c6f

View file

@ -94,11 +94,24 @@ static BOOL get_icon_size( HICON handle, SIZE *size )
if (!GetIconInfo(handle, &info)) if (!GetIconInfo(handle, &info))
return FALSE; return FALSE;
#ifdef __REACTOS__
ret = GetObjectW(info.hbmMask, sizeof(bmp), &bmp);
#else
ret = GetObjectW(info.hbmColor, sizeof(bmp), &bmp); ret = GetObjectW(info.hbmColor, sizeof(bmp), &bmp);
#endif
if (ret) if (ret)
{ {
size->cx = bmp.bmWidth; size->cx = bmp.bmWidth;
size->cy = bmp.bmHeight; 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); DeleteObject(info.hbmMask);