From 9c84426880afb0f6813f6180d4f8aeb1430a7f9d Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Thu, 6 May 2010 17:07:39 -0500 Subject: [PATCH] windowscodecs: Use the BITMAPINFOHEADER structure to get icon bitcount. --- dlls/windowscodecs/icoformat.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/windowscodecs/icoformat.c b/dlls/windowscodecs/icoformat.c index e1ea7c6..180dbb3 100644 --- a/dlls/windowscodecs/icoformat.c +++ b/dlls/windowscodecs/icoformat.c @@ -189,7 +189,7 @@ static HRESULT IcoFrameDecode_ReadPixels(IcoFrameDecode *This) hr = IStream_Read(This->parent->stream, &bih, sizeof(BITMAPINFOHEADER), &bytesread); if (FAILED(hr) || bytesread != sizeof(BITMAPINFOHEADER)) goto fail; - if (This->entry.wBitCount <= 8) + if (bih.biBitCount <= 8) { /* read the palette */ colorcount = This->entry.bColorCount ? This->entry.bColorCount : 256; @@ -202,7 +202,7 @@ static HRESULT IcoFrameDecode_ReadPixels(IcoFrameDecode *This) bitsSize = bitsStride * height; /* read the XOR data */ - switch (This->entry.wBitCount) + switch (bih.biBitCount) { case 1: { @@ -440,11 +440,11 @@ static HRESULT IcoFrameDecode_ReadPixels(IcoFrameDecode *This) break; } default: - FIXME("unsupported bitcount: %u\n", This->entry.wBitCount); + FIXME("unsupported bitcount: %u\n", bih.biBitCount); goto fail; } - if (This->entry.wBitCount < 32) + if (bih.biBitCount < 32) { /* set alpha data based on the AND mask */ UINT andBytesPerRow = (width+31)/32*4; -- 1.6.3.3