Module: wine Branch: master Commit: 7c7f70a3177524ff7c2d871dcc8fc5d22bd65c17 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7c7f70a3177524ff7c2d871dcc...
Author: Vincent Povirk vincent@codeweavers.com Date: Wed Jun 24 16:20:29 2009 -0500
windowscodecs: Implement GetSize for BMP decoder.
---
dlls/windowscodecs/bmpdecode.c | 29 +++++++++++++++++++++++++++-- 1 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/dlls/windowscodecs/bmpdecode.c b/dlls/windowscodecs/bmpdecode.c index 5ab8121..7db5dfb 100644 --- a/dlls/windowscodecs/bmpdecode.c +++ b/dlls/windowscodecs/bmpdecode.c @@ -116,11 +116,36 @@ static ULONG WINAPI BmpFrameDecode_Release(IWICBitmapFrameDecode *iface) return ref; }
+static HRESULT BmpHeader_GetSize(BITMAPV5HEADER *bih, UINT *puiWidth, UINT *puiHeight) +{ + switch (bih->bV5Size) + { + case sizeof(BITMAPCOREHEADER): + { + BITMAPCOREHEADER *bch = (BITMAPCOREHEADER*)bih; + *puiWidth = bch->bcWidth; + *puiHeight = bch->bcHeight; + return S_OK; + } + case sizeof(BITMAPCOREHEADER2): + case sizeof(BITMAPINFOHEADER): + case sizeof(BITMAPV4HEADER): + case sizeof(BITMAPV5HEADER): + *puiWidth = bih->bV5Width; + *puiHeight = bih->bV5Height; + return S_OK; + default: + return E_FAIL; + } +} + static HRESULT WINAPI BmpFrameDecode_GetSize(IWICBitmapFrameDecode *iface, UINT *puiWidth, UINT *puiHeight) { - FIXME("(%p,%p,%p): stub\n", iface, puiWidth, puiHeight); - return E_NOTIMPL; + BmpFrameDecode *This = (BmpFrameDecode*)iface; + TRACE("(%p,%p,%p)\n", iface, puiWidth, puiHeight); + + return BmpHeader_GetSize(&This->bih, puiWidth, puiHeight); }
static HRESULT WINAPI BmpFrameDecode_GetPixelFormat(IWICBitmapFrameDecode *iface,