diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 7bc0f030757..bff1c862f52 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -908,6 +908,9 @@ GpStatus WINGDIPAPI GdipDrawArc(GpGraphics *graphics, GpPen *pen, REAL x, if(!graphics || !pen || width <= 0 || height <= 0) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + num_pts = arc2polybezier(points, x, y, width, height, startAngle, sweepAngle); save_state = prepare_dc(graphics, pen); @@ -935,6 +938,9 @@ GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics *graphics, GpPen *pen, REAL x1, if(!graphics || !pen) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + pt[0].X = x1; pt[0].Y = y1; pt[1].X = x2; @@ -963,6 +969,9 @@ GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics *graphics, GpPen *pen, INT x1, if(!graphics || !pen) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + pt[0].X = x1; pt[0].Y = y1; pt[1].X = x2; @@ -990,6 +999,9 @@ GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics *graphics, GpPen *pen, if(!graphics || !pen || !points || (count <= 0)) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + for(i = 0; i < floor(count / 4); i++){ ret = GdipDrawBezier(graphics, pen, points[4*i].X, points[4*i].Y, @@ -1013,6 +1025,9 @@ GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics *graphics, GpPen *pen, if(!graphics || !pen || !points || (count <= 0)) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + pts = GdipAlloc(sizeof(GpPointF) * count); if(!pts) return OutOfMemory; @@ -1050,6 +1065,9 @@ GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics *graphics, GpPen *pen, if(!graphics || !pen || !points || count <= 0) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + /* make a full points copy.. */ ptf = GdipAlloc(sizeof(GpPointF)*(count+1)); if(!ptf) @@ -1136,6 +1154,9 @@ GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics *graphics, GpPen *pen, if(!graphics || !pen) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + pt = GdipAlloc(len_pt * sizeof(GpPointF)); tension = tension * TENSION_CONST; @@ -1211,6 +1232,9 @@ GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics *graphics, GpPen *pen, REAL x, if(!graphics || !pen) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf[0].X = x; ptf[0].Y = y; ptf[1].X = x + width; @@ -1415,6 +1439,9 @@ GpStatus WINGDIPAPI GdipDrawLine(GpGraphics *graphics, GpPen *pen, REAL x1, if(!pen || !graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + pt[0].X = x1; pt[0].Y = y1; pt[1].X = x2; @@ -1439,6 +1466,9 @@ GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1, if(!pen || !graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + pt[0].X = (REAL)x1; pt[0].Y = (REAL)y1; pt[1].X = (REAL)x2; @@ -1462,6 +1492,9 @@ GpStatus WINGDIPAPI GdipDrawLines(GpGraphics *graphics, GpPen *pen, GDIPCONST if(!pen || !graphics || (count < 2)) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + save_state = prepare_dc(graphics, pen); retval = draw_polyline(graphics, pen, points, count, TRUE); @@ -1482,6 +1515,9 @@ GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics *graphics, GpPen *pen, GDIPCONST if(!pen || !graphics || (count < 2)) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf = GdipAlloc(count * sizeof(GpPointF)); if(!ptf) return OutOfMemory; @@ -1508,6 +1544,9 @@ GpStatus WINGDIPAPI GdipDrawPath(GpGraphics *graphics, GpPen *pen, GpPath *path) if(!pen || !graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + save_state = prepare_dc(graphics, pen); retval = draw_poly(graphics, pen, path->pathdata.Points, @@ -1526,6 +1565,9 @@ GpStatus WINGDIPAPI GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x, if(!graphics || !pen) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + save_state = prepare_dc(graphics, pen); SelectObject(graphics->hdc, GetStockObject(NULL_BRUSH)); @@ -1552,6 +1594,9 @@ GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics *graphics, GpPen *pen, REAL x, if(!pen || !graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf[0].X = x; ptf[0].Y = y; ptf[1].X = x + width; @@ -1588,6 +1633,9 @@ GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics *graphics, GpPen *pen, if(!graphics || !pen || !rects || count < 1) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf = GdipAlloc(4 * count * sizeof(GpPointF)); pti = GdipAlloc(4 * count * sizeof(POINT)); @@ -1811,6 +1859,9 @@ GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics *graphics, GpBrush *brush, if(!graphics || !brush || !points) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + stat = GdipCreatePath(fill, &path); if(stat != Ok) return stat; @@ -1868,6 +1919,9 @@ GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics *graphics, GpBrush *brush, REAL x if(!graphics || !brush) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf[0].X = x; ptf[0].Y = y; ptf[1].X = x + width; @@ -1901,6 +1955,9 @@ GpStatus WINGDIPAPI GdipFillPath(GpGraphics *graphics, GpBrush *brush, GpPath *p if(!brush || !graphics || !path) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + save_state = SaveDC(graphics->hdc); EndPath(graphics->hdc); SelectObject(graphics->hdc, brush->gdibrush); @@ -1933,6 +1990,9 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x, if(!graphics || !brush) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + save_state = SaveDC(graphics->hdc); EndPath(graphics->hdc); SelectObject(graphics->hdc, brush->gdibrush); @@ -1962,6 +2022,9 @@ GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics *graphics, GpBrush *brush, if(!graphics || !brush || !points || !count) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf = GdipAlloc(count * sizeof(GpPointF)); pti = GdipAlloc(count * sizeof(POINT)); if(!ptf || !pti){ @@ -2001,6 +2064,9 @@ GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics *graphics, GpBrush *brush, if(!graphics || !brush || !points || !count) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf = GdipAlloc(count * sizeof(GpPointF)); pti = GdipAlloc(count * sizeof(POINT)); if(!ptf || !pti){ @@ -2054,6 +2120,9 @@ GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics *graphics, GpBrush *brush, if(!graphics || !brush) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf[0].X = x; ptf[0].Y = y; ptf[1].X = x + width; @@ -2087,6 +2156,9 @@ GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush, if(!graphics || !brush) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + ptf[0].X = x; ptf[0].Y = y; ptf[1].X = x + width; @@ -2160,6 +2232,9 @@ GpStatus WINGDIPAPI GdipFillRegion(GpGraphics* graphics, GpBrush* brush, if (!(graphics && brush && region)) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + FIXME("(%p, %p, %p): stub\n", graphics, brush, region); return NotImplemented; @@ -2172,6 +2247,9 @@ GpStatus WINGDIPAPI GdipFlush(GpGraphics *graphics, GpFlushIntention intention) if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + if(!(calls++)) FIXME("not implemented\n"); @@ -2185,6 +2263,9 @@ GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics *graphics, if(!graphics || !mode) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *mode = graphics->compmode; return Ok; @@ -2197,6 +2278,9 @@ GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics, if(!graphics || !quality) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *quality = graphics->compqual; return Ok; @@ -2209,6 +2293,9 @@ GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics *graphics, if(!graphics || !mode) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *mode = graphics->interpolation; return Ok; @@ -2219,6 +2306,9 @@ GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics *graphics, REAL *scale) if(!graphics || !scale) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *scale = graphics->scale; return Ok; @@ -2229,6 +2319,9 @@ GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics *graphics, GpUnit *unit) if(!graphics || !unit) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *unit = graphics->unit; return Ok; @@ -2241,6 +2334,9 @@ GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode if(!graphics || !mode) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *mode = graphics->pixeloffset; return Ok; @@ -2252,6 +2348,9 @@ GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *mo if(!graphics || !mode) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *mode = graphics->smoothing; return Ok; @@ -2264,6 +2363,9 @@ GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics *graphics, if(!graphics || !hint) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *hint = graphics->texthint; return Ok; @@ -2274,6 +2376,9 @@ GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics *graphics, GpMatrix *matrix if(!graphics || !matrix) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *matrix = *graphics->worldtrans; return Ok; } @@ -2405,6 +2510,9 @@ GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics *graphics) if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->worldtrans->matrix[0] = 1.0; graphics->worldtrans->matrix[1] = 0.0; graphics->worldtrans->matrix[2] = 0.0; @@ -2434,6 +2542,9 @@ GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics *graphics, REAL angle, if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + return GdipRotateMatrix(graphics->worldtrans, angle, order); } @@ -2456,6 +2567,9 @@ GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics *graphics, REAL sx, if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + return GdipScaleMatrix(graphics->worldtrans, sx, sy, order); } @@ -2465,6 +2579,9 @@ GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics *graphics, if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->compmode = mode; return Ok; @@ -2476,6 +2593,9 @@ GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics *graphics, if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->compqual = quality; return Ok; @@ -2487,6 +2607,9 @@ GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics *graphics, if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->interpolation = mode; return Ok; @@ -2497,6 +2620,9 @@ GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics *graphics, REAL scale) if(!graphics || (scale <= 0.0)) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->scale = scale; return Ok; @@ -2504,7 +2630,13 @@ GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics *graphics, REAL scale) GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics *graphics, GpUnit unit) { - if(!graphics || (unit == UnitWorld)) + if(!graphics) + return InvalidParameter; + + if(graphics->busy) + return ObjectBusy; + + if(unit == UnitWorld) return InvalidParameter; graphics->unit = unit; @@ -2518,6 +2650,9 @@ GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->pixeloffset = mode; return Ok; @@ -2528,6 +2663,9 @@ GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode mod if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->smoothing = mode; return Ok; @@ -2539,6 +2677,9 @@ GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics *graphics, if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + graphics->texthint = hint; return Ok; @@ -2549,6 +2690,9 @@ GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics *graphics, GpMatrix *matrix if(!graphics || !matrix) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + GdipDeleteMatrix(graphics->worldtrans); return GdipCloneMatrix(matrix, &graphics->worldtrans); } @@ -2559,6 +2703,9 @@ GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics *graphics, REAL dx, if(!graphics) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + return GdipTranslateMatrix(graphics->worldtrans, dx, dy, order); } @@ -2568,6 +2715,12 @@ GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics *graphics, INT x, INT y, { static int calls; + if(!graphics) + return InvalidParameter; + + if(graphics->busy) + return ObjectBusy; + if(!(calls++)) FIXME("not implemented\n"); @@ -2605,6 +2758,9 @@ GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics *graphics,GpPen *pen,GDIPCONST Gp if(!graphics || !pen || count<=0) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + pti = GdipAlloc(sizeof(POINT) * count); save_state = prepare_dc(graphics, pen); @@ -2645,6 +2801,9 @@ GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics *graphics, REAL* dpi) if(!graphics || !dpi) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *dpi = (REAL)GetDeviceCaps(graphics->hdc, LOGPIXELSX); return Ok; @@ -2655,6 +2814,9 @@ GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics *graphics, REAL* dpi) if(!graphics || !dpi) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + *dpi = (REAL)GetDeviceCaps(graphics->hdc, LOGPIXELSY); return Ok; @@ -2669,6 +2831,9 @@ GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics *graphics, GDIPCONST G if(!graphics || !matrix) return InvalidParameter; + if(graphics->busy) + return ObjectBusy; + m = *(graphics->worldtrans); ret = GdipMultiplyMatrix(&m, (GpMatrix*)matrix, order); @@ -2707,9 +2872,14 @@ GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics *graphics, HDC hdc) GpStatus WINGDIPAPI GdipGetClip(GpGraphics *graphics, GpRegion *region) { - FIXME("(%p, %p): stub\n", graphics, region); + if(!graphics || !region) + return InvalidParameter; - return NotImplemented; + if(graphics->busy) + return ObjectBusy; + + FIXME("(%p, %p): stub\n", graphics, region); + return NotImplemented; } GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics *graphics, GpCoordinateSpace dst_space, diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c index b933f34da11..90a416c5ffb 100644 --- a/dlls/gdiplus/tests/graphics.c +++ b/dlls/gdiplus/tests/graphics.c @@ -560,160 +560,160 @@ static void test_Get_Release_DC(void) /* try all Graphics calls here */ status = Ok; status = GdipDrawArc(graphics, pen, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawArcI(graphics, pen, 0, 0, 1, 1, 0.0, 0.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawBezier(graphics, pen, 0.0, 10.0, 20.0, 15.0, 35.0, -10.0, 10.0, 10.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawBezierI(graphics, pen, 0, 0, 0, 0, 0, 0, 0, 0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawBeziers(graphics, pen, ptf, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawBeziersI(graphics, pen, pt, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawClosedCurve(graphics, pen, ptf, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawClosedCurveI(graphics, pen, pt, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawClosedCurve2(graphics, pen, ptf, 5, 1.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawClosedCurve2I(graphics, pen, pt, 5, 1.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawCurve(graphics, pen, ptf, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawCurveI(graphics, pen, pt, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawCurve2(graphics, pen, ptf, 5, 1.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawCurve2I(graphics, pen, pt, 5, 1.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawEllipse(graphics, pen, 0.0, 0.0, 100.0, 50.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawEllipseI(graphics, pen, 0, 0, 100, 50); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; /* GdipDrawImage/GdipDrawImageI */ /* GdipDrawImagePointsRect/GdipDrawImagePointsRectI */ /* GdipDrawImageRectRect/GdipDrawImageRectRectI */ /* GdipDrawImageRect/GdipDrawImageRectI */ status = GdipDrawLine(graphics, pen, 0.0, 0.0, 100.0, 200.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawLineI(graphics, pen, 0, 0, 100, 200); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawLines(graphics, pen, ptf, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawLinesI(graphics, pen, pt, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawPath(graphics, pen, path); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawPie(graphics, pen, 0.0, 0.0, 100.0, 100.0, 0.0, 90.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawPieI(graphics, pen, 0, 0, 100, 100, 0.0, 90.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawRectangle(graphics, pen, 0.0, 0.0, 100.0, 300.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawRectangleI(graphics, pen, 0, 0, 100, 300); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawRectangles(graphics, pen, rectf, 2); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawRectanglesI(graphics, pen, rect, 2); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; /* GdipDrawString */ status = GdipFillClosedCurve2(graphics, (GpBrush*)brush, ptf, 5, 1.0, FillModeAlternate); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillClosedCurve2I(graphics, (GpBrush*)brush, pt, 5, 1.0, FillModeAlternate); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillEllipse(graphics, (GpBrush*)brush, 0.0, 0.0, 100.0, 100.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillEllipseI(graphics, (GpBrush*)brush, 0, 0, 100, 100); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillPath(graphics, (GpBrush*)brush, path); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillPie(graphics, (GpBrush*)brush, 0.0, 0.0, 100.0, 100.0, 0.0, 15.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillPieI(graphics, (GpBrush*)brush, 0, 0, 100, 100, 0.0, 15.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillPolygon(graphics, (GpBrush*)brush, ptf, 5, FillModeAlternate); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillPolygonI(graphics, (GpBrush*)brush, pt, 5, FillModeAlternate); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillPolygon2(graphics, (GpBrush*)brush, ptf, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillPolygon2I(graphics, (GpBrush*)brush, pt, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillRectangle(graphics, (GpBrush*)brush, 0.0, 0.0, 100.0, 100.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillRectangleI(graphics, (GpBrush*)brush, 0, 0, 100, 100); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillRectangles(graphics, (GpBrush*)brush, rectf, 2); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillRectanglesI(graphics, (GpBrush*)brush, rect, 2); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFillRegion(graphics, (GpBrush*)brush, region); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipFlush(graphics, FlushIntentionFlush); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetCompositingMode(graphics, &compmode); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetCompositingQuality(graphics, &quality); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetInterpolationMode(graphics, &intmode); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetPageScale(graphics, &r); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetPageUnit(graphics, &unit); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetPixelOffsetMode(graphics, &offsetmode); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetSmoothingMode(graphics, &smoothmode); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetTextRenderingHint(graphics, &texthint); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetWorldTransform(graphics, m); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; /* GdipMeasureCharacterRanges */ /* GdipMeasureString */ status = GdipResetWorldTransform(graphics); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; /* GdipRestoreGraphics */ status = GdipRotateWorldTransform(graphics, 15.0, MatrixOrderPrepend); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; /* GdipSaveGraphics */ status = GdipScaleWorldTransform(graphics, 1.0, 1.0, MatrixOrderPrepend); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetCompositingMode(graphics, CompositingModeSourceOver); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetCompositingQuality(graphics, CompositingQualityDefault); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetInterpolationMode(graphics, InterpolationModeDefault); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetPageScale(graphics, 1.0); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetPageUnit(graphics, UnitWorld); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetPixelOffsetMode(graphics, PixelOffsetModeDefault); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetSmoothingMode(graphics, SmoothingModeDefault); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetTextRenderingHint(graphics, TextRenderingHintSystemDefault); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetWorldTransform(graphics, m); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipTranslateWorldTransform(graphics, 0.0, 0.0, MatrixOrderPrepend); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipSetClipRectI(graphics, 0, 0, 10, 10, CombineModeReplace); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; /* GdipSetClipRegion */ status = GdipDrawPolygon(graphics, pen, ptf, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipDrawPolygonI(graphics, pen, pt, 5); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetDpiX(graphics, &r); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipGetDpiY(graphics, &r); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipMultiplyWorldTransform(graphics, m, MatrixOrderPrepend); status = GdipGetClip(graphics, region); - todo_wine expect(ObjectBusy, status); status = Ok; + expect(ObjectBusy, status); status = Ok; status = GdipReleaseDC(graphics, retdc); expect(Ok, status);