gdiplus: Partially implemented GdipTestControl.
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index f7b1d5d..9eafbde 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec
@@ -602,7 +602,7 @@ @ stdcall GdipStartPathFigure(ptr) @ stdcall GdipStringFormatGetGenericDefault(ptr) @ stdcall GdipStringFormatGetGenericTypographic(ptr) -@ stub GdipTestControl +@ stdcall GdipTestControl(long ptr) @ stdcall GdipTransformMatrixPoints(ptr ptr long) @ stdcall GdipTransformMatrixPointsI(ptr ptr long) @ stdcall GdipTransformPath(ptr ptr)
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index bcdc64f..61dade9 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c
@@ -1280,3 +1280,24 @@ return Ok; } + +GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum control, void *param) +{ + TRACE("(%d, %p)\n", control, param); + + switch(control){ + case TestControlForceBilinear: + if(param) + FIXME("TestControlForceBilinear not handled\n"); + break; + case TestControlNoICM: + if(param) + FIXME("TestControlNoICM not handled\n"); + break; + case TestControlGetBuildNumber: + *((DWORD*)param) = 3102; + break; + } + + return Ok; +}
diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c index 46e63f2..5d8c535 100644 --- a/dlls/gdiplus/tests/image.c +++ b/dlls/gdiplus/tests/image.c
@@ -518,6 +518,17 @@ expect(Ok, stat); } +static void test_testcontrol(void) +{ + GpStatus stat; + DWORD param; + + param = 0; + stat = GdipTestControl(TestControlGetBuildNumber, ¶m); + expect(Ok, stat); + ok(param != 0, "Build number expected, got %u\n", param); +} + START_TEST(image) { struct GdiplusStartupInput gdiplusStartupInput; @@ -540,6 +551,7 @@ test_GdipCreateBitmapFromHBITMAP(); test_GdipGetImageFlags(); test_GdipCloneImage(); + test_testcontrol(); GdiplusShutdown(gdiplusToken); }
diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h index bc52bd5..f3cdad8 100644 --- a/include/gdiplusenums.h +++ b/include/gdiplusenums.h
@@ -329,6 +329,13 @@ CoordinateSpaceDevice }; +enum GpTestControlEnum +{ + TestControlForceBilinear = 0, + TestControlNoICM = 1, + TestControlGetBuildNumber = 2 +}; + #ifndef __cplusplus typedef enum Unit Unit; @@ -364,6 +371,7 @@ typedef enum CombineMode CombineMode; typedef enum FlushIntention FlushIntention; typedef enum CoordinateSpace CoordinateSpace; +typedef enum GpTestControlEnum GpTestControlEnum; #endif /* end of c typedefs */
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index cbb59e5..03980ea 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h
@@ -537,6 +537,8 @@ GpStatus WINGDIPAPI GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL); GpStatus WINGDIPAPI GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL); +GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum,void*); + #ifdef __cplusplus } #endif