windowscodecs: Fix non-zero alpha detection in ImagingFactory_CreateBitmapFromHICON.

Increment pixel pointer for every *pixel*, not every *stride*.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
This commit is contained in:
Jinoh Kang 2022-06-28 22:41:38 +09:00 committed by Alexandre Julliard
parent 29dd844439
commit e6155827e8

View file

@ -901,12 +901,11 @@ static HRESULT WINAPI ImagingFactory_CreateBitmapFromHICON(IWICImagingFactory2 *
if (bm.bmBitsPixel == 32)
{
/* If any pixel has a non-zero alpha, ignore hbmMask */
bits = (DWORD *)buffer;
for (x = 0; x < width && !has_alpha; x++, bits++)
DWORD *ptr = (DWORD *)buffer;
DWORD *end = ptr + width * height;
while (ptr != end)
{
for (y = 0; y < height; y++)
{
if (*bits & 0xff000000)
if (*ptr++ & 0xff000000)
{
has_alpha = TRUE;
break;
@ -914,7 +913,6 @@ static HRESULT WINAPI ImagingFactory_CreateBitmapFromHICON(IWICImagingFactory2 *
}
}
}
}
else
GetDIBits(hdc, info.hbmMask, 0, height, buffer, &bi, DIB_RGB_COLORS);