Module: wine Branch: master Commit: b2648b8285e61dd6a34ba34f2894041b068586fc URL: http://source.winehq.org/git/wine.git/?a=commit;h=b2648b8285e61dd6a34ba34f28...
Author: Mikolaj Zalewski mikolajz@google.com Date: Wed Oct 3 17:26:56 2007 -0700
oleaut32: olepicture: When drawing metafiles set the coordinates system so that it is drawn in the correct place.
---
dlls/oleaut32/olepicture.c | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c index 6608fa2..30ecd1a 100644 --- a/dlls/oleaut32/olepicture.c +++ b/dlls/oleaut32/olepicture.c @@ -694,8 +694,23 @@ static HRESULT WINAPI OLEPictureImpl_Render(IPicture *iface, HDC hdc, break;
case PICTYPE_METAFILE: - PlayMetaFile(hdc, This->desc.u.wmf.hmeta); + { + POINT prevOrg; + SIZE prevExt; + int oldmode; + + oldmode = SetMapMode(hdc, MM_ANISOTROPIC); + SetViewportOrgEx(hdc, x, y, &prevOrg); + SetViewportExtEx(hdc, cx, cy, &prevExt); + + if (!PlayMetaFile(hdc, This->desc.u.wmf.hmeta)) + ERR("PlayMetaFile failed!\n"); + + SetViewportExtEx(hdc, prevExt.cx, prevExt.cy, NULL); + SetViewportOrgEx(hdc, prevOrg.x, prevOrg.y, NULL); + SetMapMode(hdc, oldmode); break; + }
case PICTYPE_ENHMETAFILE: {