Module: wine Branch: master Commit: b4cd2c4dbb68e181d6124ef75329eac715a3977c URL: http://source.winehq.org/git/wine.git/?a=commit;h=b4cd2c4dbb68e181d6124ef753...
Author: Huw Davies huw@codeweavers.com Date: Wed Mar 25 08:37:40 2015 +0000
ole32: Add support for drawing the dib format.
---
dlls/ole32/datacache.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c index ff15d91..35b27de 100644 --- a/dlls/ole32/datacache.c +++ b/dlls/ole32/datacache.c @@ -1646,6 +1646,26 @@ static HRESULT WINAPI DataCache_Draw(
return S_OK; } + case CF_DIB: + { + BITMAPFILEHEADER *file_head; + BITMAPINFO *info; + BYTE *bits; + + if ((cache_entry->stgmedium.tymed != TYMED_HGLOBAL) || + !((file_head = GlobalLock( cache_entry->stgmedium.u.hGlobal )))) + continue; + + info = (BITMAPINFO *)(file_head + 1); + bits = (BYTE *) file_head + file_head->bfOffBits; + StretchDIBits( hdcDraw, lprcBounds->left, lprcBounds->top, + lprcBounds->right - lprcBounds->left, lprcBounds->bottom - lprcBounds->top, + 0, 0, info->bmiHeader.biWidth, info->bmiHeader.biHeight, + bits, info, DIB_RGB_COLORS, SRCCOPY ); + + GlobalUnlock( cache_entry->stgmedium.u.hGlobal ); + return S_OK; + } } }