[PATCH] gdiplus: Add stub for GdipGraphicsSetAbort
Andrew Eikum
aeikum at codeweavers.com
Wed Jul 26 15:00:40 CDT 2017
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
dlls/gdiplus/gdiplus.spec | 2 +-
dlls/gdiplus/graphics.c | 13 +++++++++++++
dlls/gdiplus/tests/graphics.c | 30 ++++++++++++++++++++++++++++++
include/gdiplusflat.h | 1 +
4 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index dd8d9098a5..25b27e71eb 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -622,7 +622,7 @@
622 stdcall GdipBitmapGetHistogramSize(long ptr)
623 stdcall GdipBitmapConvertFormat(ptr long long long ptr float)
624 stdcall GdipImageSetAbort(ptr ptr)
-625 stub GdipGraphicsSetAbort
+625 stdcall GdipGraphicsSetAbort(ptr ptr)
626 stub GdipDrawImageFX
627 stdcall GdipConvertToEmfPlus(ptr ptr ptr long ptr ptr)
628 stdcall GdipConvertToEmfPlusToFile(ptr ptr ptr ptr long ptr ptr)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 43cd6ac2dd..f3c8e465c4 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -7138,3 +7138,16 @@ GpStatus WINGDIPAPI GdipResetPageTransform(GpGraphics *graphics)
return NotImplemented;
}
+
+GpStatus WINGDIPAPI GdipGraphicsSetAbort(GpGraphics *graphics, GdiplusAbort *pabort)
+{
+ TRACE("(%p, %p)\n", graphics, pabort);
+
+ if (!graphics)
+ return InvalidParameter;
+
+ if (pabort)
+ FIXME("Abort callback is not supported.\n");
+
+ return Ok;
+}
diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index 529f1a23e5..bba9d57aed 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -29,6 +29,8 @@
#define expectf_(expected, got, precision) ok(fabs((expected) - (got)) <= (precision), "Expected %f, got %f\n", (expected), (got))
#define expectf(expected, got) expectf_((expected), (got), 0.001)
+static GpStatus (WINAPI *pGdipGraphicsSetAbort)(GpGraphics*,GdiplusAbort*);
+
static const REAL mm_per_inch = 25.4;
static const REAL point_per_inch = 72.0;
static HWND hwnd;
@@ -6149,11 +6151,38 @@ static void test_container_rects(void)
ReleaseDC(hwnd, hdc);
}
+static void test_GdipGraphicsSetAbort(void)
+{
+ HDC hdc = GetDC(hwnd);
+ GpStatus status;
+ GpGraphics *graphics;
+
+ if (!pGdipGraphicsSetAbort)
+ {
+ win_skip("GdipGraphicsSetAbort() is not supported.\n");
+ return;
+ }
+
+ status = GdipCreateFromHDC(hdc, &graphics);
+ expect(Ok, status);
+
+ status = pGdipGraphicsSetAbort(NULL, NULL);
+ expect(InvalidParameter, status);
+
+ status = pGdipGraphicsSetAbort(graphics, NULL);
+ expect(Ok, status);
+
+ ReleaseDC(hwnd, hdc);
+}
+
START_TEST(graphics)
{
struct GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
WNDCLASSA class;
+ HMODULE mod = GetModuleHandleA("gdiplus.dll");
+
+ pGdipGraphicsSetAbort = (void*)GetProcAddress(mod, "GdipGraphicsSetAbort");
memset( &class, 0, sizeof(class) );
class.lpszClassName = "gdiplus_test";
@@ -6223,6 +6252,7 @@ START_TEST(graphics)
test_GdipFillRectangles();
test_GdipGetVisibleClipBounds_memoryDC();
test_container_rects();
+ test_GdipGraphicsSetAbort();
GdiplusShutdown(gdiplusToken);
DestroyWindow( hwnd );
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 6e5b23fb2c..10d537a017 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -263,6 +263,7 @@ GpStatus WINGDIPAPI GdipGetTextContrast(GpGraphics*,UINT*);
GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics*,TextRenderingHint*);
GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics*,GpMatrix*);
GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics*,ARGB);
+GpStatus WINGDIPAPI GdipGraphicsSetAbort(GpGraphics*,GdiplusAbort*);
GpStatus WINGDIPAPI GdipGetVisibleClipBounds(GpGraphics*,GpRectF*);
GpStatus WINGDIPAPI GdipGetVisibleClipBoundsI(GpGraphics*,GpRect*);
GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics*, BOOL*);
--
2.13.3
More information about the wine-patches
mailing list