diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index bb5c36d599e..871a9c421d6 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -185,7 +185,7 @@ @ stub GdipDrawImageRectI @ stub GdipDrawImageRectRect @ stub GdipDrawImageRectRectI -@ stub GdipDrawLine +@ stdcall GdipDrawLine(ptr ptr long long long long) @ stdcall GdipDrawLineI(ptr ptr long long long long) @ stdcall GdipDrawLines(ptr ptr ptr long) @ stub GdipDrawLinesI diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 7c8fc168cdc..439deddddf8 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -1076,6 +1076,30 @@ GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image return Ok; } +GpStatus WINGDIPAPI GdipDrawLine(GpGraphics *graphics, GpPen *pen, REAL x1, + REAL y1, REAL x2, REAL y2) +{ + INT save_state; + GpPointF pt[2]; + GpStatus retval; + + if(!pen || !graphics) + return InvalidParameter; + + pt[0].X = x1; + pt[0].Y = y1; + pt[1].X = x2; + pt[1].Y = y2; + + save_state = prepare_dc(graphics, pen); + + retval = draw_polyline(graphics, pen, pt, 2, TRUE); + + restore_dc(graphics, save_state); + + return retval; +} + GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1, INT y1, INT x2, INT y2) { diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 975640354be..25b9b1b34dc 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -60,6 +60,7 @@ GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,RE GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics*,GpImage*, GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,GpUnit, GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawLine(GpGraphics *graphics,GpPen*,REAL,REAL,REAL,REAL); GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT); GpStatus WINGDIPAPI GdipDrawLines(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*);