Dmitry Timoshkov : gdiplus: Implement GdipEnumerateMetafileDestPoint and GdipEnumerateMetafileDestPointI .
Alexandre Julliard
julliard at winehq.org
Mon May 6 14:08:45 CDT 2013
Module: wine
Branch: master
Commit: 4c4c661bc0cb999a7c112f10bbb238792d8394c2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4c4c661bc0cb999a7c112f10bbb238792d8394c2
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Mon May 6 12:09:24 2013 +0900
gdiplus: Implement GdipEnumerateMetafileDestPoint and GdipEnumerateMetafileDestPointI.
---
dlls/gdiplus/gdiplus.spec | 4 ++--
dlls/gdiplus/metafile.c | 30 ++++++++++++++++++++++++++++++
include/gdiplusflat.h | 4 ++++
3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 2fa1771..4f30ed1 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -190,8 +190,8 @@
190 stdcall GdipDrawString(ptr wstr long ptr ptr ptr ptr)
191 stdcall GdipEmfToWmfBits(ptr long ptr long long)
192 stdcall GdipEndContainer(ptr ptr)
-193 stub GdipEnumerateMetafileDestPoint
-194 stub GdipEnumerateMetafileDestPointI
+193 stdcall GdipEnumerateMetafileDestPoint(ptr ptr ptr ptr ptr ptr)
+194 stdcall GdipEnumerateMetafileDestPointI(ptr ptr ptr ptr ptr ptr)
195 stub GdipEnumerateMetafileDestPoints
196 stub GdipEnumerateMetafileDestPointsI
197 stdcall GdipEnumerateMetafileDestRect(ptr ptr ptr ptr ptr ptr)
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
index 893fe6b..bcb5be7 100644
--- a/dlls/gdiplus/metafile.c
+++ b/dlls/gdiplus/metafile.c
@@ -584,6 +584,36 @@ GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics *graphics,
return GdipEnumerateMetafileDestRect(graphics, metafile, &destf, callback, cb_data, attrs);
}
+GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics *graphics,
+ GDIPCONST GpMetafile *metafile, GDIPCONST GpPointF *dest,
+ EnumerateMetafileProc callback, VOID *cb_data, GDIPCONST GpImageAttributes *attrs)
+{
+ GpRectF destf;
+
+ if (!graphics || !metafile || !dest) return InvalidParameter;
+
+ destf.X = dest->X;
+ destf.Y = dest->Y;
+ destf.Width = units_to_pixels(metafile->bounds.Width, metafile->unit, metafile->image.xres);
+ destf.Height = units_to_pixels(metafile->bounds.Height, metafile->unit, metafile->image.yres);
+
+ return GdipEnumerateMetafileDestRect(graphics, metafile, &destf, callback, cb_data, attrs);
+}
+
+GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics *graphics,
+ GDIPCONST GpMetafile *metafile, GDIPCONST GpPoint *dest,
+ EnumerateMetafileProc callback, VOID *cb_data, GDIPCONST GpImageAttributes *attrs)
+{
+ GpPointF ptf;
+
+ if (!graphics || !metafile || !dest) return InvalidParameter;
+
+ ptf.X = dest->X;
+ ptf.Y = dest->Y;
+
+ return GdipEnumerateMetafileDestPoint(graphics, metafile, &ptf, callback, cb_data, attrs);
+}
+
static int CALLBACK get_metafile_type_proc(HDC hDC, HANDLETABLE *lpHTable, const ENHMETARECORD *lpEMFR,
int nObj, LPARAM lpData)
{
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 8e720f1..c622431 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -206,6 +206,10 @@ GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics*,GpPen*,GDIPCONST GpRect*,INT
GpStatus WINGDIPAPI GdipDrawString(GpGraphics*,GDIPCONST WCHAR*,INT,
GDIPCONST GpFont*,GDIPCONST RectF*, GDIPCONST GpStringFormat*,
GDIPCONST GpBrush*);
+GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics*,GDIPCONST GpMetafile*,
+ GDIPCONST GpPointF*,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
+GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics*,GDIPCONST GpMetafile*,
+ GDIPCONST GpPoint*,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
GpStatus WINGDIPAPI GdipEnumerateMetafileDestRect(GpGraphics*,GDIPCONST GpMetafile*,
GDIPCONST GpRectF*,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics*,GDIPCONST GpMetafile*,
More information about the wine-cvs
mailing list