Index: branch/egtra-gdiplus/Classes/System/Drawing/Graphics.ab
===================================================================
--- Include/Classes/System/Drawing/Graphics.ab	(revision 212)
+++ branch/egtra-gdiplus/Classes/System/Drawing/Graphics.ab	(revision 241)
@@ -4,30 +4,32 @@
 #define __SYSTEM_DRAWING_GRAPHICS_AB__
 
-Class Brush : End Class
+#require <GdiplusGpStubs.ab>
+#require <GdiPlusFlat.ab>
+#require <Classes/System/Drawing/misc.ab>
+#require <Classes/System/Drawing/Rectangle.ab>
+#require <Classes/System/Drawing/RectangleF.ab>
+#require <Classes/System/Drawing/Point.ab>
+#require <Classes/System/Drawing/PointF.ab>
+#require <Classes/System/Drawing/SizeF.ab>
+#require <Classes/System/Drawing/Font.ab>
+#require <Classes/System/Drawing/Brush.ab>
+'#require <Classes/System/Drawing/Pen.ab>
+'#require <Classes/System/Drawing/Region.ab>
+'#require <Classes/System/Drawing/StringFormat.ab>
+'#require <Classes/System/Drawing/Image.ab>
+#require <Classes/System/Drawing/Drawing2D/misc.ab>
+#require <Classes/System/Drawing/Drawing2D/Matrix.ab>
+#require <Classes/System/Drawing/Imaging/ImageAttributes.ab>
+
+Namespace System
+Namespace Drawing
+
 Class Pen : End Class
 Class StringFormat : End Class
 Class Image : End Class
-Class ImageAttributes : End Class
 Class Metafile : End Class
 Class Region : End Class
 Class GraphicsPath : End Class
 Class CachedBitmap : End Class
-
-#include <GdiplusGpStubs.ab>
-#include <GdiPlusFlat.ab>
-#include <Classes/System/Drawing/misc.ab>
-#include <Classes/System/Drawing/Rectangle.ab>
-#include <Classes/System/Drawing/RectangleF.ab>
-#include <Classes/System/Drawing/Point.ab>
-#include <Classes/System/Drawing/PointF.ab>
-#include <Classes/System/Drawing/SizeF.ab>
-#include <Classes/System/Drawing/Font.ab>
-'#include <Classes/System/Drawing/Brush.ab>
-'#include <Classes/System/Drawing/Pen.ab>
-'#include <Classes/System/Drawing/Region.ab>
-'#include <Classes/System/Drawing/StringFormat.ab>
-'#include <Classes/System/Drawing/Image.ab>
-#include <Classes/System/Drawing/Drawing2D/misc.ab>
-#include <Classes/System/Drawing/Drawing2D/Matrix.ab>
 
 Class Graphics
@@ -104,5 +106,5 @@
 	End Function
 
-	Function PageScale(scale As Single) As Status
+	Function PageScale(scale As Single) As Gdiplus.Status
 		Return SetStatus(GdipSetPageScale(nativeGraphics, scale))
 	End Function
@@ -120,5 +122,5 @@
 	End Function
 
-	Function PageUnit(unit As GraphicsUnit) As Status
+	Function PageUnit(unit As GraphicsUnit) As Gdiplus.Status
 		Return SetStatus(GdipSetPageUnit(nativeGraphics, unit))
 	End Function
@@ -206,5 +208,5 @@
 
 	Sub Graphics(hdc As HDC)
-		Dim graphics = 0 As GpGraphics
+		Dim graphics = 0 As Gdiplus.GpGraphics
 		lastResult = GdipCreateFromHDC(hdc, graphics)
 		SetNativeGraphics(graphics)
@@ -212,5 +214,5 @@
 
 	Sub Graphics(hdc As HDC, hdevice As HANDLE)
-		Dim graphics = 0 As *GpGraphics
+		Dim graphics = 0 As *Gdiplus.GpGraphics
 		lastResult = GdipCreateFromHDC2(hdc, hdevice, graphics)
 		SetNativeGraphics(graphics)
@@ -218,5 +220,5 @@
 
 	Sub Graphics(hwnd As HWND)
-		Dim graphics = 0 As *GpGraphics
+		Dim graphics = 0 As *Gdiplus.GpGraphics
 		lastResult = GdipCreateFromHWND(hwnd, graphics)
 		SetNativeGraphics(graphics)
@@ -224,5 +226,5 @@
 
 	Sub Graphics(hwnd As HWND, icm As BOOL)
-		Dim graphics = 0 As *GpGraphics
+		Dim graphics = 0 As *Gdiplus.GpGraphics
 		If icm <> FALSE Then
 			lastResult = GdipCreateFromHWNDICM(hwnd, graphics)
@@ -234,5 +236,5 @@
 
 	Sub Graphics(image As Image)
-		Dim graphics = 0 As *GpGraphics
+		Dim graphics = 0 As *Gdiplus.GpGraphics
 		If (image != 0)
 			lastResult = GdipGetImageGraphicsContext(image->NativeImage, graphics)
@@ -273,13 +275,13 @@
 	'------------------------------------------------------------------------
 
-	Function SetRenderingOrigin(x As Long, y As Long) As Status
+	Function SetRenderingOrigin(x As Long, y As Long) As Gdiplus.Status
 		Return SetStatus(GdipSetRenderingOrigin(nativeGraphics, x, y))
 	End Function
 
-	Const Function GetRenderingOrigin(x As Long, y As Long) As Status
+	Const Function GetRenderingOrigin(x As Long, y As Long) As Gdiplus.Status
 		Return SetStatus(GdipGetRenderingOrigin(nativeGraphics, x, y))
 	End Function
 
-	Function SetCompositingMode(compositingMode As CompositingMode) As Status
+	Function SetCompositingMode(compositingMode As CompositingMode) As Gdiplus.Status
 		Return SetStatus(GdipSetCompositingMode(nativeGraphics, compositingMode))
 	End Function
@@ -301,5 +303,5 @@
 	End Function
 
-	Function SetTextRenderingHint(newMode As TextRenderingHint) As Status
+	Function SetTextRenderingHint(newMode As TextRenderingHint) As Gdiplus.Status
 		Return SetStatus(GdipSetTextRenderingHint(nativeGraphics, newMode))
 	End Function
@@ -311,5 +313,5 @@
 	End Function
 
-	Function SetTextContrast(contrast As DWord) As Status
+	Function SetTextContrast(contrast As DWord) As Gdiplus.Status
 		Return SetStatus(GdipSetTextContrast(nativeGraphics, contrast))
 	End Function
@@ -327,5 +329,5 @@
 	End Function
 
-	Function SetInterpolationMode(interpolationMode As InterpolationMode) As Status
+	Function SetInterpolationMode(interpolationMode As InterpolationMode) As Gdiplus.Status
 		Return SetStatus(GdipSetInterpolationMode(nativeGraphics, interpolationMode))
 	End Function
@@ -337,5 +339,5 @@
 	End Function
 
-	Function SetSmoothingMode(smoothingMode As SmoothingMode) As Status
+	Function SetSmoothingMode(smoothingMode As SmoothingMode) As Gdiplus.Status
 		Return SetStatus(GdipSetSmoothingMode(nativeGraphics, smoothingMode))
 	End Function
@@ -347,5 +349,5 @@
 	End Function
 
-	Function SetPixelOffsetMode(pixelOffsetMode As PixelOffsetMode) As Status
+	Function SetPixelOffsetMode(pixelOffsetMode As PixelOffsetMode) As Gdiplus.Status
 		Return SetStatus(GdipSetPixelOffsetMode(nativeGraphics, pixelOffsetMode))
 	End Function
@@ -355,53 +357,53 @@
 	'------------------------------------------------------------------------
 
-	Function SetTransform(matrix As /*Const*/ *Matrix) As Status
+	Function SetTransform(matrix As /*Const*/ *Matrix) As Gdiplus.Status
 		Return SetStatus(GdipSetWorldTransform(nativeGraphics, matrix->nativeMatrix))
 	End Function
 
-	Function ResetTransform() As Status
+	Function ResetTransform() As Gdiplus.Status
 		Return SetStatus(GdipResetWorldTransform(nativeGraphics))
 	End Function
 
-	Function MultiplyTransform(matrix As /*Const*/ Matrix) As Status
+	Function MultiplyTransform(matrix As /*Const*/ Matrix) As Gdiplus.Status
 		Return SetStatus(GdipMultiplyWorldTransform(nativeGraphics, matrix->nativeMatrix, MatrixOrder.Prepend))
 	End Function
 
-	Function MultiplyTransform(matrix As /*Const*/ Matrix, order As MatrixOrder) As Status
+	Function MultiplyTransform(matrix As /*Const*/ Matrix, order As MatrixOrder) As Gdiplus.Status
 		Return SetStatus(GdipMultiplyWorldTransform(nativeGraphics, matrix->nativeMatrix, order))
 	End Function
 
-	Function TranslateTransform(dx As Single, dy As Single) As Status
+	Function TranslateTransform(dx As Single, dy As Single) As Gdiplus.Status
 		Return SetStatus(GdipTranslateWorldTransform(nativeGraphics, dx, dy, MatrixOrder.Prepend))
 	End Function
 
-	Function TranslateTransform(dx As Single, dy As Single, order As MatrixOrder) As Status
+	Function TranslateTransform(dx As Single, dy As Single, order As MatrixOrder) As Gdiplus.Status
 		Return SetStatus(GdipTranslateWorldTransform(nativeGraphics, dx, dy, order))
 	End Function
 
-	Function ScaleTransform(sx As Single, sy As Single) As Status
+	Function ScaleTransform(sx As Single, sy As Single) As Gdiplus.Status
 		Return SetStatus(GdipScaleWorldTransform(nativeGraphics, sx, sy, MatrixOrder.Prepend))
 	End Function
 
-	Function ScaleTransform(sx As Single, sy As Single, order As MatrixOrder) As Status
+	Function ScaleTransform(sx As Single, sy As Single, order As MatrixOrder) As Gdiplus.Status
 		Return SetStatus(GdipScaleWorldTransform(nativeGraphics, sx, sy, order))
 	End Function
 
-	Function RotateTransform(angle As Single) As Status
+	Function RotateTransform(angle As Single) As Gdiplus.Status
 		Return SetStatus(GdipRotateWorldTransform(nativeGraphics, angle, MatrixOrder.Prepend))
 	End Function
 
-	Function RotateTransform(angle As Single, order As MatrixOrder) As Status
+	Function RotateTransform(angle As Single, order As MatrixOrder) As Gdiplus.Status
 		Return SetStatus(GdipRotateWorldTransform(nativeGraphics, angle, order))
 	End Function
 
-	Const Function GetTransform(matrix As Matrix) As Status
+	Const Function GetTransform(matrix As Matrix) As Gdiplus.Status
 		Return SetStatus(GdipGetWorldTransform(nativeGraphics, matrix->nativeMatrix))
 	End Function
 
-	Const Function TransformPoints(destSpace As CoordinateSpace, srcSpace As CoordinateSpace, pts As PointF, count As Long) As Status
+	Const Function TransformPoints(destSpace As CoordinateSpace, srcSpace As CoordinateSpace, pts As PointF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipTransformPoints(nativeGraphics, destSpace, srcSpace, pts, count))
 	End Function
 
-	Const Function TransformPoints(destSpace As CoordinateSpace, srcSpace As CoordinateSpace, pts As Point, count As Long) As Status
+	Const Function TransformPoints(destSpace As CoordinateSpace, srcSpace As CoordinateSpace, pts As Point, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipTransformPointsI(nativeGraphics, destSpace, srcSpace, pts, count))
 	End Function
@@ -411,5 +413,5 @@
 	'------------------------------------------------------------------------
 
-	Const Function GetNearestColor(color As Color) As Status
+	Const Function GetNearestColor(color As Color) As Gdiplus.Status
 		Dim argb = color->Value
 		Dim status = SetStatus(GdipGetNearestColor(nativeGraphics, argb))
@@ -418,294 +420,294 @@
 	End Function
 
-	Function DrawLine(pen As /*Const*/ Pen, x1 As Single, y1 As Single, x2 As Single, y2 As Single) As Status
+	Function DrawLine(pen As /*Const*/ Pen, x1 As Single, y1 As Single, x2 As Single, y2 As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawLine(nativeGraphics, pen->nativePen, x1, y1, x2, y2))
 	End Function
 
-	Function DrawLine(pen As /*Const*/ Pen, pt1 As /*Const*/ PointF, pt2 As /*Const*/ PointF) As Status
+	Function DrawLine(pen As /*Const*/ Pen, pt1 As /*Const*/ PointF, pt2 As /*Const*/ PointF) As Gdiplus.Status
 		Return DrawLine(pen, pt1.X, pt1.Y, pt2.X, pt2.Y)
 	End Function
 
-	Function DrawLines(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Status
+	Function DrawLines(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawLines(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawLine(pen As /*Const*/ Pen, x1 As Long, y1 As Long, x2 As Long, y2 As Long) As Status
+	Function DrawLine(pen As /*Const*/ Pen, x1 As Long, y1 As Long, x2 As Long, y2 As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawLineI(nativeGraphics, pen->nativePen, x1, y1, x2, y2))
 	End Function
 
-	Function DrawLine(pen As /*Const*/ Pen, pt1 As /*Const*/ Point, pt2 As /*Const*/ Point) As Status
+	Function DrawLine(pen As /*Const*/ Pen, pt1 As /*Const*/ Point, pt2 As /*Const*/ Point) As Gdiplus.Status
 		Return DrawLine(pen, pt1.X, pt1.Y, pt2.X, pt2.Y)
 	End Function
 
-	Function DrawLines(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Status
+	Function DrawLines(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawLinesI(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawArc(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawArc(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawArc(nativeGraphics, pen->nativePen, x, y, width, height, startAngle, sweepAngle))
 	End Function
 
-	Function DrawArc(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawArc(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return DrawArc(pen, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle)
 	End Function
 
-	Function DrawArc(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawArc(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawArcI(nativeGraphics, pen->nativePen, x, y, width, height, startAngle, sweepAngle))
 	End Function
 
-	Function DrawArc(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawArc(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return DrawArc(pen, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle)
 	End Function
 
-	Function DrawBezier(pen As /*Const*/ Pen, x1 As Single, y1 As Single, x2 As Single, y2 As Single, x3 As Single, y3 As Single, x4 As Single, y4 As Single) As Status
+	Function DrawBezier(pen As /*Const*/ Pen, x1 As Single, y1 As Single, x2 As Single, y2 As Single, x3 As Single, y3 As Single, x4 As Single, y4 As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawBezier(nativeGraphics, pen->nativePen, x1, y1,x2, y2, x3, y3, x4, y4))
 	End Function
 
-	Function DrawBezier(pen As /*Const*/ Pen, pt1 As /*Const*/ PointF, pt2 As /*Const*/ PointF, pt3 As /*Const*/ PointF, pt4 As /*Const*/ PointF) As Status
+	Function DrawBezier(pen As /*Const*/ Pen, pt1 As /*Const*/ PointF, pt2 As /*Const*/ PointF, pt3 As /*Const*/ PointF, pt4 As /*Const*/ PointF) As Gdiplus.Status
 		Return DrawBezier(pen, pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, pt4.Y)
 	End Function
 
-	Function DrawBeziers(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Status
+	Function DrawBeziers(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawBeziers(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawBezier(pen As /*Const*/ Pen, x1 As Long, y1 As Long, x2 As Long, y2 As Long, x3 As Long, y3 As Long, x4 As Long, y4 As Long) As Status
+	Function DrawBezier(pen As /*Const*/ Pen, x1 As Long, y1 As Long, x2 As Long, y2 As Long, x3 As Long, y3 As Long, x4 As Long, y4 As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawBezierI(nativeGraphics, pen->nativePen, x1, y1, x2, y2, x3, y3, x4, y4))
 	End Function
 
-	Function DrawBezier(pen As /*Const*/ Pen, pt1 As /*Const*/ Point, pt2 As /*Const*/ Point, pt3 As /*Const*/ Point, pt4 As /*Const*/ Point) As Status
+	Function DrawBezier(pen As /*Const*/ Pen, pt1 As /*Const*/ Point, pt2 As /*Const*/ Point, pt3 As /*Const*/ Point, pt4 As /*Const*/ Point) As Gdiplus.Status
 		Return DrawBezier(pen pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, pt4.Y)
 	End Function
 
-	Function DrawBeziers(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Status
+	Function DrawBeziers(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawBeziersI(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawRectangle(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF) As Status
+	Function DrawRectangle(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF) As Gdiplus.Status
 		Return DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function DrawRectangle(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single) As Status
+	Function DrawRectangle(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawRectangle(nativeGraphics, pen->nativePen, x, y, width, height))
 	End Function
 
-	Function DrawRectangles(pen As /*Const*/ Pen, rects As /*Const*/ *RectangleF, count As Long) As Status
+	Function DrawRectangles(pen As /*Const*/ Pen, rects As /*Const*/ *RectangleF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawRectangles(nativeGraphics, pen->nativePen, rects, count))
 	End Function
 
-	Function DrawRectangle(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle) As Status
+	Function DrawRectangle(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle) As Gdiplus.Status
 		Return DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function DrawRectangle(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long) As Status
+	Function DrawRectangle(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawRectangleI(nativeGraphics, pen->nativePen, x, y, width, height))
 	End Function
 
-	Function DrawRectangles(pen As /*Const*/ Pen, rects As /*Const*/ *Rectangle,  count As Long) As Status
+	Function DrawRectangles(pen As /*Const*/ Pen, rects As /*Const*/ *Rectangle,  count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawRectanglesI(nativeGraphics, pen->nativePen, rects, count))
 	End Function
 
-	Function DrawEllipse(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF) As Status
+	Function DrawEllipse(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF) As Gdiplus.Status
 		Return DrawEllipse(pen, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function DrawEllipse(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single) As Status
+	Function DrawEllipse(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawEllipse(nativeGraphics, pen->nativePen, x, y, width, height))
 	End Function
 
-	Function DrawEllipse(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle) As Status
+	Function DrawEllipse(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle) As Gdiplus.Status
 		Return DrawEllipse(pen, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function DrawEllipse(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long) As Status
+	Function DrawEllipse(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawEllipseI(nativeGraphics, pen->nativePen, x, y, width, height))
 	End Function
 
-	Function DrawPie(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawPie(pen As /*Const*/ Pen, rect As /*Const*/ RectangleF, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return DrawPie(pen, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle)
 	End Function
 
-	Function DrawPie(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawPie(pen As /*Const*/ Pen, x As Single, y As Single, width As Single, height As Single, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawPie(nativeGraphics, pen->nativePen, x, y, width, height, startAngle, sweepAngle))
 	End Function
 
-	Function DrawPie(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawPie(pen As /*Const*/ Pen, rect As /*Const*/ Rectangle, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return DrawPie(pen, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle)
 	End Function
 
-	Function DrawPie(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long, startAngle As Single, sweepAngle As Single) As Status
+	Function DrawPie(pen As /*Const*/ Pen, x As Long, y As Long, width As Long, height As Long, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawPieI(nativeGraphics, pen->nativePen, x, y, width, height, startAngle, sweepAngle))
 	End Function
 
-	Function DrawPolygon(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Status
+	Function DrawPolygon(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawPolygon(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawPolygon(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Status
+	Function DrawPolygon(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawPolygonI(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawPath(pen As /*Const*/ Pen, path As /*Const*/ GraphicsPath) As Status
+	Function DrawPath(pen As /*Const*/ Pen, path As /*Const*/ GraphicsPath) As Gdiplus.Status
 		Return SetStatus(GdipDrawPath(nativeGraphics, pen->nativePen, path->nativePath))
 '		Return SetStatus(GdipDrawPath(nativeGraphics, pen ? pen->nativePen : NULL, path ? path->nativePath : NULL))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurve(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, tension As Single) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurve2(nativeGraphics, pen->nativePen, points,count, tension))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, offset As Long, numberOfSegments As Long) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, offset As Long, numberOfSegments As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurve3(nativeGraphics, pen->nativePen, points, count, offset,numberOfSegments, 0.5))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, offset As Long, numberOfSegments As Long, tension As Single) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, offset As Long, numberOfSegments As Long, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurve3(nativeGraphics, pen->nativePen, points, count, offset,numberOfSegments, tension))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurveI(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, tension As Single) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurve2I(nativeGraphics, pen->nativePen, points, count, tension))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, offset As Long, numberOfSegments As Long) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, offset As Long, numberOfSegments As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurve3I(nativeGraphics, pen->nativePen, points, count, offset, numberOfSegments, 0.5))
 	End Function
 
-	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, offset As Long, numberOfSegments As Long, tension As Single) As Status
+	Function DrawCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, offset As Long, numberOfSegments As Long, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawCurve3I(nativeGraphics, pen->nativePen, points, count, offset, numberOfSegments, tension))
 	End Function
 
-	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Status
+	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawClosedCurve(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, tension As Single) As Status
+	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *PointF, count As Long, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawClosedCurve2(nativeGraphics, pen->nativePen, points, count, tension))
 	End Function
 
-	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Status
+	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawClosedCurveI(nativeGraphics, pen->nativePen, points, count))
 	End Function
 
-	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, tension As Single) As Status
+	Function DrawClosedCurve(pen As /*Const*/ Pen, points As /*Const*/ *Point, count As Long, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipDrawClosedCurve2I(nativeGraphics, pen->nativePen, points, count, tension))
 	End Function
 
-	Function Clear(color As /*Const*/ Color) As Status
+	Function Clear(color As /*Const*/ Color) As Gdiplus.Status
 		Return SetStatus(GdipGraphicsClear(nativeGraphics, color.Value))
 	End Function
 
-	Function FillRectangle(brush As /*Const*/ Brush, rect As /*Const*/ RectangleF) As Status
+	Function FillRectangle(brush As /*Const*/ Brush, rect As /*Const*/ RectangleF) As Gdiplus.Status
 		Return FillRectangle(brush, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function FillRectangle(brush As /*Const*/ Brush, x As Single, y As Single, width As Single, height As Single) As Status
+	Function FillRectangle(brush As /*Const*/ Brush, x As Single, y As Single, width As Single, height As Single) As Gdiplus.Status
 		Return SetStatus(GdipFillRectangle(nativeGraphics, brush->nativeBrush, x, y, width, height))
 	End Function
 
-	Function FillRectangles(brush As /*Const*/ Brush, rects As /*Const*/ *RectangleF, count As Long) As Status
+	Function FillRectangles(brush As /*Const*/ Brush, rects As /*Const*/ *RectangleF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipFillRectangles(nativeGraphics,brush->nativeBrush,rects, count))
 	End Function
 
-	Function FillRectangle(brush As /*Const*/ Brush, rect As /*Const*/ Rectangle) As Status
+	Function FillRectangle(brush As /*Const*/ Brush, rect As /*Const*/ Rectangle) As Gdiplus.Status
 		Return FillRectangle(brush, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function FillRectangle(brush As /*Const*/ Brush, x As Long, y As Long, width As Long, height As Long) As Status
+	Function FillRectangle(brush As /*Const*/ Brush, x As Long, y As Long, width As Long, height As Long) As Gdiplus.Status
 		Return SetStatus(GdipFillRectangleI(nativeGraphics, brush->nativeBrush, x, y, width, height))
 	End Function
 
-	Function FillRectangles(brush As /*Const*/ Brush, rects As /*Const*/ *Rectangle, count As Long) As Status
+	Function FillRectangles(brush As /*Const*/ Brush, rects As /*Const*/ *Rectangle, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipFillRectanglesI(nativeGraphics, brush->nativeBrush, rects, count))
 	End Function
 
-	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long) As Status
+	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long) As Gdiplus.Status
 		Return FillPolygon(brush, points, count, FillModeAlternate)
 	End Function
 
-	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long, fillMode As FillMode) As Status
+	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long, fillMode As FillMode) As Gdiplus.Status
 		Return SetStatus(GdipFillPolygon(nativeGraphics, brush->nativeBrush, points, count, fillMode))
 	End Function
 
-	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long) As Status
+	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long) As Gdiplus.Status
 		Return FillPolygon(brush, points, count, FillModeAlternate)
 	End Function
 
-	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long, fillMode As FillMode) As Status
+	Function FillPolygon(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long, fillMode As FillMode) As Gdiplus.Status
 		Return SetStatus(GdipFillPolygonI(nativeGraphics, brush->nativeBrush, points, count, fillMode))
 	End Function
 
-	Function FillEllipse(brush As /*Const*/ Brush, rect As /*Const*/ RectangleF) As Status
+	Function FillEllipse(brush As /*Const*/ Brush, rect As /*Const*/ RectangleF) As Gdiplus.Status
 		Return FillEllipse(brush, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function FillEllipse(brush As /*Const*/ Brush, x As Single, y As Single, width As Single, height As Single) As Status
+	Function FillEllipse(brush As /*Const*/ Brush, x As Single, y As Single, width As Single, height As Single) As Gdiplus.Status
 		Return SetStatus(GdipFillEllipse(nativeGraphics, brush->nativeBrush, x, y, width, height))
 	End Function
 
-	Function FillEllipse(brush As /*Const*/ Brush, rect As /*Const*/ Rectangle) As Status
+	Function FillEllipse(brush As /*Const*/ Brush, rect As /*Const*/ Rectangle) As Gdiplus.Status
 		Return FillEllipse(brush, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function FillEllipse(brush As /*Const*/ Brush, x As Long, y As Long, width As Long, height As Long) As Status
+	Function FillEllipse(brush As /*Const*/ Brush, x As Long, y As Long, width As Long, height As Long) As Gdiplus.Status
 		Return SetStatus(GdipFillEllipseI(nativeGraphics, brush->nativeBrush, x, y, width, height))
 	End Function
 
-	Function FillPie(brush As /*Const*/ Brush, rect As /*Const*/ RectangleF, startAngle As Single, sweepAngle As Single) As Status
+	Function FillPie(brush As /*Const*/ Brush, rect As /*Const*/ RectangleF, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return FillPie(brush, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle)
 	End Function
 
-	Function FillPie(brush As /*Const*/ Brush, x As Single, y As Single, width As Single, height As Single, startAngle As Single, sweepAngle As Single) As Status
+	Function FillPie(brush As /*Const*/ Brush, x As Single, y As Single, width As Single, height As Single, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return SetStatus(GdipFillPie(nativeGraphics, brush->nativeBrush, x, y, width, height, startAngle, sweepAngle))
 	End Function
 
-	Function FillPie(brush As /*Const*/ Brush, rect As /*Const*/ Rectangle, startAngle As Single, sweepAngle As Single) As Status
+	Function FillPie(brush As /*Const*/ Brush, rect As /*Const*/ Rectangle, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return FillPie(brush, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle)
 	End Function
 
-	Function FillPie(brush As /*Const*/ Brush, x As Long, y As Long, width As Long, height As Long, startAngle As Single, sweepAngle As Single) As Status
+	Function FillPie(brush As /*Const*/ Brush, x As Long, y As Long, width As Long, height As Long, startAngle As Single, sweepAngle As Single) As Gdiplus.Status
 		Return SetStatus(GdipFillPieI(nativeGraphics, brush->nativeBrush, x, y, width, height, startAngle, sweepAngle))
 	End Function
 
-	Function FillPath(brush As /*Const*/ Brush, path As /*Const*/ GraphicsPath) As Status
+	Function FillPath(brush As /*Const*/ Brush, path As /*Const*/ GraphicsPath) As Gdiplus.Status
 		Return SetStatus(GdipFillPath(nativeGraphics, brush->nativeBrush, path->nativePath))
 	End Function
 
-	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long) As Status
+	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipFillClosedCurve(nativeGraphics, brush->nativeBrush, points, count))
 	End Function
 
-	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long, fillMode As FillMode) As Status
+	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long, fillMode As FillMode) As Gdiplus.Status
 		Return SetStatus(GdipFillClosedCurve2(nativeGraphics, brush->nativeBrush, points, count, 0.5, fillMode))
 	End Function
 
-	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long, fillMode As FillMode, tension As Single) As Status
+	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *PointF, count As Long, fillMode As FillMode, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipFillClosedCurve2(nativeGraphics, brush->nativeBrush, points, count, tension, fillMode))
 	End Function
 
-	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long) As Status
+	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long) As Gdiplus.Status
 		Return SetStatus(GdipFillClosedCurveI(nativeGraphics, brush->nativeBrush, points, count))
 	End Function
 
-	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long, fillMode As FillMode) As Status
+	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long, fillMode As FillMode) As Gdiplus.Status
 		Return SetStatus(GdipFillClosedCurve2I(nativeGraphics, brush->nativeBrush, points, count, 0.5, fillMode))
 	End Function
 
-	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long, fillMode As FillMode, tension As Single) As Status
+	Function FillClosedCurve(brush As /*Const*/ Brush, points As /*Const*/ *Point, count As Long, fillMode As FillMode, tension As Single) As Gdiplus.Status
 		Return SetStatus(GdipFillClosedCurve2I(nativeGraphics, brush->nativeBrush, points, count, tension, fillMode))
 	End Function
 
-	Function FillRegion(brush As /*Const*/ Brush, region As /*Const*/ Region) As Status
+	Function FillRegion(brush As /*Const*/ Brush, region As /*Const*/ Region) As Gdiplus.Status
 		Return SetStatus(GdipFillRegion(nativeGraphics, brush->nativeBrush, region->nativeRegion))
 	End Function
 
-	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, layoutRect As /*Const*/ RectangleF) As Status
+	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, layoutRect As /*Const*/ RectangleF) As Gdiplus.Status
 		Dim nativeFont As *GpFont
 		If VarPtr(font) <> 0 Then
@@ -718,5 +720,5 @@
 
 	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, layoutRect As /*Const*/ Rectangle,
-		stringFormat As /*Const*/ StringFormat, brush As /*Const*/ Brush) As Status
+		stringFormat As /*Const*/ StringFormat, brush As /*Const*/ Brush) As Gdiplus.Status
 
 		Dim nativeFont As *GpFont
@@ -736,5 +738,5 @@
 
 	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, layoutRect As /*Const*/ RectangleF,
-		stringFormat As /*Const*/ StringFormat, brush As /*Const*/ Brush) As Status
+		stringFormat As /*Const*/ StringFormat, brush As /*Const*/ Brush) As Gdiplus.Status
 
 		Dim nativeFont As *GpFont
@@ -759,5 +761,5 @@
 	End Function
 
-	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, origin As /*Const*/ Point) As Status
+	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, origin As /*Const*/ Point) As Gdiplus.Status
 		Dim rect As RectangleF(origin.X, origin.Y, 0.0, 0.0)
 		Dim nativeFont As *GpFont
@@ -771,5 +773,5 @@
 
 	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, origin As /*Const*/ PointF,
-		brush As /*Const*/ Brush) As Status
+		brush As /*Const*/ Brush) As Gdiplus.Status
 
 		Dim rect As RectangleF(origin.X, origin.Y, 0.0, 0.0)
@@ -789,5 +791,5 @@
 	End Function
 
-	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, origin As /*Const*/ PointF) As Status
+	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, origin As /*Const*/ PointF) As Gdiplus.Status
 		Dim rect As RectangleF(origin.X, origin.Y, 0.0, 0.0)
 		Dim nativeFont As *GpFont
@@ -801,5 +803,5 @@
 
 	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, origin As /*Const*/ PointF,
-		stringFormat As /*Const*/ StringFormat) As Status
+		stringFormat As /*Const*/ StringFormat) As Gdiplus.Status
 
 		Dim rect As RectangleF(origin.X, origin.Y, 0.0, 0.0)
@@ -820,5 +822,5 @@
 
 	Function DrawString(str As PCWSTR, length As Long, font As /*Const*/ Font, origin As /*Const*/ PointF,
-		stringFormat As /*Const*/ StringFormat, brush As /*Const*/ Brush) As Status
+		stringFormat As /*Const*/ StringFormat, brush As /*Const*/ Brush) As Gdiplus.Status
 
 		Dim rect As RectangleF(origin.X, origin.Y, 0.0, 0.0)
@@ -844,5 +846,5 @@
 
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font, layoutRect As /*Const*/ RectangleF,
-		stringFormat As /*Const*/ StringFormat, boundingBox As RectangleF) As Status
+		stringFormat As /*Const*/ StringFormat, boundingBox As RectangleF) As Gdiplus.Status
 
 		Return MeasureString(str, length, font, layoutRect, stringFormat, boundingBox, ByVal 0, ByVal 0)
@@ -851,5 +853,5 @@
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font, layoutRect As /*Const*/ RectangleF,
 		stringFormat As /*Const*/ StringFormat, boundingBox As RectangleF,
-		codepointsFitted As Long) As Status
+		codepointsFitted As Long) As Gdiplus.Status
 
 		Return MeasureString(str, length, font, layoutRect, stringFormat, boundingBox, codepointsFitted, ByVal 0)
@@ -858,5 +860,5 @@
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font, layoutRect As /*Const*/ RectangleF,
 		stringFormat As /*Const*/ StringFormat, boundingBox As RectangleF,
-		codepointsFitted As Long, linesFilled As Long) As Status
+		codepointsFitted As Long, linesFilled As Long) As Gdiplus.Status
 
 		Dim nativeFont As *GpFont
@@ -878,5 +880,5 @@
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font,
 		layoutRectSize As /*Const*/ SizeF, stringFormat As /*Const*/ StringFormat,
-		size As SizeF) As Status
+		size As SizeF) As Gdiplus.Status
 
 			Return MeasureString(str, length, font, layoutRectSize, stringFormat, size, ByVal 0, ByVal 0)
@@ -885,5 +887,5 @@
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font,
 		layoutRectSize As /*Const*/ SizeF, stringFormat As /*Const*/ StringFormat,
-		size As SizeF, codepointsFitted As Long) As Status
+		size As SizeF, codepointsFitted As Long) As Gdiplus.Status
 
 			Return MeasureString(str, length, font, layoutRectSize, stringFormat, size, codepointsFitted, ByVal 0)
@@ -892,5 +894,5 @@
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font,
 		layoutRectSize As /*Const*/ SizeF, stringFormat As /*Const*/ StringFormat,
-		size As SizeF, codepointsFitted As Long, linesFilled As Long) As Status
+		size As SizeF, codepointsFitted As Long, linesFilled As Long) As Gdiplus.Status
 
 		Dim layoutRect As RectangleF(0, 0, layoutRectSize.Width, layoutRectSize.Height)
@@ -917,5 +919,5 @@
 			nativeFont, layoutRect, nativeFormat, pBoundingBox, codepointsFitted, linesFilled))
 
-		If VarPtr(size) <> 0 And status = Status.Ok Then
+		If VarPtr(size) <> 0 And status = Gdiplus.Status.Ok Then
 			size.Width  = boundingBox.Width
 			size.Height = boundingBox.Height
@@ -927,5 +929,5 @@
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font,
 		origin As /*Const*/ PointF, stringFormat As /*Const*/ StringFormat,
-		boundingBox As RectangleF) As Status
+		boundingBox As RectangleF) As Gdiplus.Status
 
 		Dim rect As RectangleF(origin.X, origin.Y, 0.0f, 0.0f)
@@ -947,5 +949,5 @@
 
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font,
-		layoutRect As /*Const*/ RectangleF, boundingBox As RectangleF) As Status
+		layoutRect As /*Const*/ RectangleF, boundingBox As RectangleF) As Gdiplus.Status
 
 		Dim nativeFont As *GpFont
@@ -960,5 +962,5 @@
 
 	Const Function MeasureString(str As PCWSTR, length As Long, font As /*Const*/ Font,
-		origin As /*Const*/ PointF, boundingBox As RectangleF) As Status
+		origin As /*Const*/ PointF, boundingBox As RectangleF) As Gdiplus.Status
 		Dim rect As RectangleF(origin.X, origin.Y, 0.0, 0.0)
 
@@ -974,5 +976,5 @@
 	Const Function MeasureCharacterRanges(str As PCWSTR, length As Long, font As /*Const*/ Font,
 		layoutRect As /*Const*/ RectangleF, stringFormat As /*Const*/ StringFormat,
-		regionCount As Long, regions As *Region) As Status
+		regionCount As Long, regions As *Region) As Gdiplus.Status
 		If regions = 0 Or regionCount <= 0 Then
 			Return InvalidParameter
@@ -1010,5 +1012,5 @@
 
 	Function DrawDriverString(text As /*Const*/ Word, length As Long, font As /*Const*/ Font,
-		brush As /*Const*/ Brush, positions As /*Const*/ *PointF, flags As Long) As Status
+		brush As /*Const*/ Brush, positions As /*Const*/ *PointF, flags As Long) As Gdiplus.Status
 
 		Return DrawDriverString(text, length, font, brush, positions, flags, ByVal 0)
@@ -1016,5 +1018,5 @@
 
 	Function DrawDriverString(text As /*Const*/ Word, length As Long, font As /*Const*/ Font,
-		brush As /*Const*/ Brush, positions As /*Const*/ *PointF, flags As Long, matrix As /*Const*/ Matrix) As Status
+		brush As /*Const*/ Brush, positions As /*Const*/ *PointF, flags As Long, matrix As /*Const*/ Matrix) As Gdiplus.Status
 
 		Dim nativeFont As *GpFont
@@ -1040,5 +1042,5 @@
 
 	Const Function MeasureDriverString(text As /*Const*/ Word, length As Long, font As /*Const*/ Font,
-		positions As /*Const*/ *PointF, flags As Long, matrix As /*Const*/ Matrix, boundingBox As RectangleF) As Status
+		positions As /*Const*/ *PointF, flags As Long, matrix As /*Const*/ Matrix, boundingBox As RectangleF) As Gdiplus.Status
 
 		Dim nativeFont As *GpFont
@@ -1061,13 +1063,13 @@
 	' native format differs from this Graphics.
 
-	Function DrawCachedBitmap(cb As CachedBitmap, x As Long, y As Long) As Status
+	Function DrawCachedBitmap(cb As CachedBitmap, x As Long, y As Long) As Gdiplus.Status
 		Return SetStatus(GdipDrawCachedBitmap(nativeGraphics, cb->nativeCachedBitmap, x, y))
 	End Function
 
-	Function DrawImage(image As Image, point As /*Const*/ PointF) As Status
+	Function DrawImage(image As Image, point As /*Const*/ PointF) As Gdiplus.Status
 		Return DrawImage(image, point.X, point.Y)
 	End Function
 
-	Function DrawImage(image As Image, x As Single, y As Single) As Status
+	Function DrawImage(image As Image, x As Single, y As Single) As Gdiplus.Status
 		Dim nativeImage As *GpImage
 		If VarPtr(image) <> 0 Then
@@ -1079,9 +1081,9 @@
 	End Function
 
-	Function DrawImage(image As Image, rect As /*Const*/ RectangleF) As Status
+	Function DrawImage(image As Image, rect As /*Const*/ RectangleF) As Gdiplus.Status
 		Return DrawImage(image, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function DrawImage(image As Image, x As Single, y As Single, width As Single, height As Single) As Status
+	Function DrawImage(image As Image, x As Single, y As Single, width As Single, height As Single) As Gdiplus.Status
 		Dim nativeImage As *GpImage
 		If VarPtr(image) <> 0 Then
@@ -1093,9 +1095,9 @@
 	End Function
 
-	Function DrawImage(image As Image, point As /*Const*/ Point) As Status
-		Return DrawImage(image, point.X, point.Y) As Status
-	End Function
-
-	Function DrawImage(image As Image, x As Long, y As Long) As Status
+	Function DrawImage(image As Image, point As /*Const*/ Point) As Gdiplus.Status
+		Return DrawImage(image, point.X, point.Y) As Gdiplus.Status
+	End Function
+
+	Function DrawImage(image As Image, x As Long, y As Long) As Gdiplus.Status
 		Dim nativeImage As *GpImage
 		If VarPtr(image) <> 0 Then
@@ -1107,9 +1109,9 @@
 	End Function
 
-	Function DrawImage(image As Image, rect As /*Const*/ Rectangle) As Status
+	Function DrawImage(image As Image, rect As /*Const*/ Rectangle) As Gdiplus.Status
 		Return DrawImage(image, rect.X, rect.Y, rect.Width, rect.Height)
 	End Function
 
-	Function DrawImage(image As Image, x As Long, y As Long, width As Long, height As Long) As Status
+	Function DrawImage(image As Image, x As Long, y As Long, width As Long, height As Long) As Gdiplus.Status
 		Dim nativeImage As *GpImage
 		If VarPtr(image) <> 0 Then
@@ -1129,5 +1131,5 @@
 	'	   destPoints[3] <=> bottom-right corner
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ PointF, count As Long) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ PointF, count As Long) As Gdiplus.Status
 		If count <> 3 And count <> 4 Then
 			Return SetStatus(InvalidParameter)
@@ -1143,5 +1145,5 @@
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ Point, count As Long) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ Point, count As Long) As Gdiplus.Status
 		If count <> 3 And count <> 4 Then
 			Return SetStatus(InvalidParameter)
@@ -1158,5 +1160,5 @@
 
 	Function DrawImage(image As Image, x As Single, y As Single,
-		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Status
+		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Gdiplus.Status
 
 		Dim nativeImage As *GpImage
@@ -1170,5 +1172,5 @@
 
 	Function DrawImage(image As Image, destRect As /*Const*/ RectangleF,
-		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Status
+		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Gdiplus.Status
 
 		Return DrawImage(image, destRect, srcx, srcy, srcwidth, srcheight, srcUnit, 0, 0, 0)
@@ -1177,5 +1179,5 @@
 	Function DrawImage(image As Image, destRect As /*Const*/ RectangleF,
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes) As Status
+		imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Return DrawImage(image, destRect, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, 0, 0)
@@ -1185,5 +1187,5 @@
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
 		imageAttributes As /*Const*/ ImageAttributes,
-		callback As DrawImageAbort) As Status
+		callback As DrawImageAbort) As Gdiplus.Status
 
 		Return DrawImage(image, destRect, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, callback, 0)
@@ -1192,5 +1194,5 @@
 	Function DrawImage(image As Image, destRect As /*Const*/ RectangleF,
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Status
+		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Gdiplus.Status
 
 		Dim nativeImage As *GpImage
@@ -1200,18 +1202,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipDrawImageRectRect(nativeGraphics, nativeImageAttr,
 			destRect.X, destRect.Y, destRect.Width, destRect.Height, srcx, srcy, srcwidth, srcheight,
-			srcUnit, nativeImageAttr, callback, callbackData))
+			srcUnit, ImageAttributes.Native(imageAttributes), callback, callbackData))
 	End Function
 
 	Function DrawImage(image As Image, destPoints As /*Const*/ PointF, count As Long,
-		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Status
+		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Gdiplus.Status
 
 		Return DrawImage(image, destPoints, count, srcx, srcy, srcwidth, srcheight, srcUnit, 0, 0, 0)
@@ -1220,5 +1216,5 @@
 	Function DrawImage(image As Image, destPoints As /*Const*/ PointF, count As Long,
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes) As Status
+		imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Return DrawImage(image, destPoints, count, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, 0, 0)
@@ -1228,5 +1224,5 @@
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
 		imageAttributes As /*Const*/ ImageAttributes,
-		callback As DrawImageAbort) As Status
+		callback As DrawImageAbort) As Gdiplus.Status
 
 		Return DrawImage(image, destPoints, count, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, callback, 0)
@@ -1235,5 +1231,5 @@
 	Function DrawImage(image As Image, destPoints As /*Const*/ PointF, count As Long,
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Status
+		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Gdiplus.Status
 
 		Dim nativeImage As *GpImage
@@ -1243,17 +1239,11 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipDrawImagePointsRect(nativeGraphics, nativeImage, destPoints, count,
-			srcx, srcy, srcwidth, srcheight, srcUnit, nativeImageAttr, callback, callbackData))
+			srcx, srcy, srcwidth, srcheight, srcUnit, ImageAttributes.Native(imageAttributes), callback, callbackData))
 	End Function
 
 	Function DrawImage(image As Image, x As Long, y As Long,
-		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit) As Status
+		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit) As Gdiplus.Status
 
 		Dim nativeImage As *GpImage
@@ -1267,5 +1257,5 @@
 
 	Function DrawImage(image As Image, destRect As /*Const*/ Rectangle,
-		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Status
+		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit) As Gdiplus.Status
 
 		Return DrawImage(image, destRect, srcx, srcy, srcwidth, srcheight, srcUnit, 0, 0, 0)
@@ -1274,5 +1264,5 @@
 	Function DrawImage(image As Image, destRect As /*Const*/ Rectangle,
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes) As Status
+		imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Return DrawImage(image, destRect, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, 0, 0)
@@ -1281,5 +1271,5 @@
 	Function DrawImage(image As Image, destRect As /*Const*/ Rectangle,
 		srcx As Single, srcy As Single, srcwidth As Single, srcheight As Single, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort) As Status
+		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort) As Gdiplus.Status
 
 		Return DrawImage(image, destRect, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, callback, 0)
@@ -1288,5 +1278,5 @@
 	Function DrawImage(image As Image, destRect As /*Const*/ Rectangle,
 		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Status
+		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Gdiplus.Status
 
 		Dim nativeImage As *GpImage
@@ -1296,18 +1286,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipDrawImageRectRectI(nativeGraphics, nativeImage,
 			destRect.X, destRect.Y, destRect.Width, destRect.Height,
-			srcx, srcy, srcwidth, srcheight, srcUnit, nativeImageAttr, callback, callbackData))
+			srcx, srcy, srcwidth, srcheight, srcUnit, ImageAttributes.Native(imageAttributes), callback, callbackData))
 	End Function
 
 	Function DrawImage(image As Image, destPoints As /*Const*/ Point, count As Long,
-		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit) As Status
+		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit) As Gdiplus.Status
 
 		Return DrawImage(image, destPoints, count, srcx, srcy, srcwidth, srcheight, srcUnit, 0, 0, 0)
@@ -1316,5 +1300,5 @@
 	Function DrawImage(image As Image, destPoints As /*Const*/ Point, count As Long,
 		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes) As Status
+		imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Return DrawImage(image, destPoints, count, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, 0, 0)
@@ -1324,5 +1308,5 @@
 		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit, _
 		imageAttributes As /*Const*/ ImageAttributes,
-		callback As DrawImageAbort) As Status
+		callback As DrawImageAbort) As Gdiplus.Status
 
 		Return DrawImage(image, destPoints, count, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, callback, 0)
@@ -1331,5 +1315,5 @@
 	Function DrawImage(image As Image, destPoints As /*Const*/ Point, count As Long,
 		srcx As Long, srcy As Long, srcwidth As Long, srcheight As Long, srcUnit As GraphicsUnit,
-		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Status
+		imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Gdiplus.Status
 
 		Dim nativeImage As *GpImage
@@ -1339,52 +1323,46 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipDrawImagePointsRectI(nativeGraphics, nativeImage, destPoints, count,
-			srcx, srcy, srcwidth, srcheight, srcUnit, nativeImageAttr, callback, callbackData))
-	End Function
-
-	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit) As Status
+			srcx, srcy, srcwidth, srcheight, srcUnit, ImageAttributes.Native(imageAttributes), callback, callbackData))
+	End Function
+
+	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit)
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit)
 	End Function
 
-	Function DrawImage(image As Image, x As Long, y As Long, srcRect As Rectangle, srcUnit As GraphicsUnit) As Status
+	Function DrawImage(image As Image, x As Long, y As Long, srcRect As Rectangle, srcUnit As GraphicsUnit) As Gdiplus.Status
 		Return DrawImage(image, x, y, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit)
 	End Function
 
-	Function DrawImage(image As Image, x As Single, y As Single, srcRect As RectangleF, srcUnit As GraphicsUnit) As Status
+	Function DrawImage(image As Image, x As Single, y As Single, srcRect As RectangleF, srcUnit As GraphicsUnit) As Gdiplus.Status
 		Return DrawImage(image, x, y, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit)
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit, imageAttributes)
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit, imageAttributes)
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit, imageAttributes, callback)
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit, imageAttributes, callback)
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ *Point, count As Long, srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit, imageAttributes, callback, callbackData)
 	End Function
 
-	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Status
+	Function DrawImage(image As Image, destPoints As /*Const*/ *PointF, count As Long, srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttributes As /*Const*/ ImageAttributes, callback As DrawImageAbort, callbackData As VoidPtr) As Gdiplus.Status
 		Return DrawImage(image, destPoints, count, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, srcUnit, imageAttributes, callback, callbackData)
 	End Function
@@ -1397,5 +1375,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoint As /*Const*/ PointF,
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, callback, 0, 0)
@@ -1403,5 +1381,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoint As /*Const*/ PointF,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, callback, callbackData, 0)
@@ -1409,5 +1387,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoint As /*Const*/ PointF,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1417,17 +1395,11 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileDestPoint(nativeGraphics,
-			nativeImage, destPoint, callback, callbackData,nativeImageAttr))
+			nativeImage, destPoint, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoint As /*Const*/ Point,
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, callback, 0, 0)
@@ -1435,5 +1407,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoint As /*Const*/ Point,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, callback, callbackData, 0)
@@ -1441,5 +1413,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoint As /*Const*/ Point,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1449,17 +1421,11 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileDestPointI(nativeGraphics,
-			nativeImage, destPoint, callback, callbackData,nativeImageAttr))
+			nativeImage, destPoint, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destRect As /*Const*/ RectangleF,
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, callback, 0, 0)
@@ -1467,5 +1433,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destRect As /*Const*/ RectangleF,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, callback, callbackData, 0)
@@ -1473,5 +1439,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destRect As /*Const*/ RectangleF,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1481,17 +1447,11 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileDestRect(nativeGraphics,
-			nativeImage, destRect, callback, callbackData, nativeImageAttr))
+			nativeImage, destRect, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destRect As /*Const*/ Rectangle,
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, callback, 0, 0)
@@ -1499,5 +1459,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destRect As /*Const*/ Rectangle,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, callback, callbackData, 0)
@@ -1505,5 +1465,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destRect As /*Const*/ Rectangle,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1513,17 +1473,11 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileDestRectI(nativeGraphics,
-			nativeImage, destRect, callback, callbackData, nativeImageAttr))
+			nativeImage, destRect, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoints As /*Const*/ *PointF, count As Long,
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, callback, 0, 0)
@@ -1531,5 +1485,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoints As /*Const*/ *PointF, count As Long,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, callback, callbackData, 0)
@@ -1537,5 +1491,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoints As /*Const*/ *PointF, count As Long,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1545,17 +1499,11 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileDestPoints(nativeGraphics,
-			nativeImage,destPoints, count, callback, callbackData, nativeImageAttr))
+			nativeImage,destPoints, count, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoints As /*Const*/ *Point, count As Long,
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, callback, 0, 0)
@@ -1563,5 +1511,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoints As /*Const*/ *Point, count As Long,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, callback, callbackData, 0)
@@ -1569,5 +1517,5 @@
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, destPoints As /*Const*/ *Point, count As Long,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1577,18 +1525,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileDestPointsI(nativeGraphics,
-			nativeImage,destPoints, count, callback, callbackData, nativeImageAttr))
+			nativeImage,destPoints, count, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile,
 		destPoint As /*Const*/ PointF, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit,
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, count, srcUnit, callback, 0, 0)
@@ -1597,5 +1539,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile,
 		destPoint As /*Const*/ PointF, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, srcRect, srcUnit, callback, callbackData, 0)
@@ -1604,5 +1546,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile,
 		destPoint As /*Const*/ PointF, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit,
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1612,18 +1554,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileSrcRectDestPoint(nativeGraphics, _
-			nativeImage, destPoint, srcRect, srcUnit, callback, callbackData, nativeImageAttr))
+			nativeImage, destPoint, srcRect, srcUnit, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoint As /*Const*/ Point, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, count, srcUnit, callback, 0, 0)
@@ -1632,5 +1568,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoint As /*Const*/ Point, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoint, srcRect, srcUnit, callback, callbackData, 0)
@@ -1639,5 +1575,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoint As /*Const*/ Point, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1647,18 +1583,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileSrcRectDestPointI(nativeGraphics, _
-			nativeImage, destPoint, srcRect, srcUnit, callback, callbackData, nativeImageAttr))
+			nativeImage, destPoint, srcRect, srcUnit, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destRect As /*Const*/ RectangleF, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, count, srcUnit, callback, 0, 0)
@@ -1667,5 +1597,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destRect As /*Const*/ RectangleF, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, srcRect, srcUnit, callback, callbackData, 0)
@@ -1674,5 +1604,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destRect As /*Const*/ RectangleF, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1682,18 +1612,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileSrcRectDestRect(nativeGraphics, _
-			nativeImage, destRect, srcRect, srcUnit, callback, callbackData, nativeImageAttr))
+			nativeImage, destRect, srcRect, srcUnit, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destRect As /*Const*/ Rectangle, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, srcRect, srcUnit, callback, 0, 0)
@@ -1702,5 +1626,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destRect As /*Const*/ Rectangle, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destRect, srcRect, srcUnit, callback, callbackData, 0)
@@ -1709,5 +1633,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destRect As /*Const*/ Rectangle, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1717,18 +1641,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileSrcRectDestRectI(nativeGraphics, _
-			nativeImage, destRect, srcRect, srcUnit, callback, callbackData, nativeImageAttr))
+			nativeImage, destRect, srcRect, srcUnit, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoints As /*Const*/ *PointF, count As Long, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, srcRect, srcUnit, callback, 0, 0)
@@ -1737,5 +1655,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoints As /*Const*/ *PointF, count As Long, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, srcRect, srcUnit, callback, callbackData, 0)
@@ -1744,5 +1662,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoints As /*Const*/ *PointF, count As Long, srcRect As /*Const*/ RectangleF, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1752,18 +1670,12 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileSrcRectDestPoints(nativeGraphics, _
-			nativeImage, destPoints, count, srcRect, srcUnit, callback, callbackData, nativeImageAttr))
+			nativeImage, destPoints, count, srcRect, srcUnit, callback, callbackData, ImageAttributes.Native(imageAttributes)))
 	End Function
 
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoints As /*Const*/ *Point, count As Long, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc) As Status
+		callback As EnumerateMetafileProc) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, srcRect, srcUnit, callback, 0, 0)
@@ -1772,5 +1684,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoints As /*Const*/ *Point, count As Long, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr) As Gdiplus.Status
 
 		Return EnumerateMetafile(metafile, destPoints, count, srcRect, srcUnit, callback, callbackData, 0)
@@ -1779,5 +1691,5 @@
 	Function EnumerateMetafile(metafile As /*Const*/ Metafile, _
 		destPoints As /*Const*/ *Point, count As Long, srcRect As /*Const*/ Rectangle, srcUnit As GraphicsUnit, _
-		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Status
+		callback As EnumerateMetafileProc, callbackData As VoidPtr, imageAttributes As /*Const*/ ImageAttributes) As Gdiplus.Status
 
 		Dim nativeImage As /*Const*/ *GpMetafile
@@ -1787,52 +1699,46 @@
 			nativeImage = 0
 		End If
-		Dim nativeImageAttr As *GpImageAttributes
-		If VarPtr(imageAttributes) <> 0 Then
-			nativeImageAttr = image.NativeImageAttr
-		Else
-			nativeImageAttr = 0
-		End If
 
 		Return SetStatus(GdipEnumerateMetafileSrcRectDestPointsI(nativeGraphics, nativeImage, _
-			destPoints, count, srcRect, srcUnit, callback, callbackData, nativeImageAttr))
-	End Function
-
-	Function SetClip(g As /*Const*/ Graphics) As Status
+			destPoints, count, srcRect, srcUnit, callback, callbackData, ImageAttributes.Native(imageAttributes)))
+	End Function
+
+	Function SetClip(g As /*Const*/ Graphics) As Gdiplus.Status
 		Return SetClip(g, CombineMode.Replace)
 	End Function
 
-	Function SetClip(rc As /*Const*/ RectangleF) As Status
+	Function SetClip(rc As /*Const*/ RectangleF) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRect(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, CombineMode.Replace))
 	End Function
 
-	Function SetClip(rc As /*Const*/ Rectangle) As Status
+	Function SetClip(rc As /*Const*/ Rectangle) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRectI(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, CombineMode.Replace))
 	End Function
 
-	Function SetClip(path As /*Const*/ GraphicsPath) As Status
+	Function SetClip(path As /*Const*/ GraphicsPath) As Gdiplus.Status
 		Return SetStatus(GdipSetClipPath(nativeGraphics, path->nativePath, CombineMode.Replace))
 	End Function
 
-	Function SetClip(region As /*Const*/ Region) As Status
+	Function SetClip(region As /*Const*/ Region) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRegion(nativeGraphics, region->nativeRegion, CombineMode.Replace))
 	End Function
 
-	Function SetClip(g As /*Const*/ Graphics, combineMode As CombineMode) As Status
+	Function SetClip(g As /*Const*/ Graphics, combineMode As CombineMode) As Gdiplus.Status
 		Return SetStatus(GdipSetClipGraphics(nativeGraphics, g->nativeGraphics, combineMode))
 	End Function
 
-	Function SetClip(rc As /*Const*/ RectangleF, combineMode As CombineMode) As Status
+	Function SetClip(rc As /*Const*/ RectangleF, combineMode As CombineMode) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRect(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, combineMode))
 	End Function
 
-	Function SetClip(rc As /*Const*/ Rectangle, combineMode As CombineMode) As Status
+	Function SetClip(rc As /*Const*/ Rectangle, combineMode As CombineMode) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRectI(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, combineMode))
 	End Function
 
-	Function SetClip(path As /*Const*/ GraphicsPath, combineMode As CombineMode) As Status
+	Function SetClip(path As /*Const*/ GraphicsPath, combineMode As CombineMode) As Gdiplus.Status
 		Return SetStatus(GdipSetClipPath(nativeGraphics, path->nativePath, combineMode))
 	End Function
 
-	Function SetClip(region As /*Const*/ Region, combineMode As CombineMode) As Status
+	Function SetClip(region As /*Const*/ Region, combineMode As CombineMode) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRegion(nativeGraphics, region->nativeRegion, combineMode))
 	End Function
@@ -1842,61 +1748,61 @@
 	' the coordinates in the HRGN.
 
-	Function SetClip(hrgn As HRGN, combineMode As CombineMode /* = CombineModeReplace*/) As Status
+	Function SetClip(hrgn As HRGN, combineMode As CombineMode /* = CombineModeReplace*/) As Gdiplus.Status
 		Return SetStatus(GdipSetClipHrgn(nativeGraphics, hrgn, combineMode))
 	End Function
 
-	Function IntersectClip(rc As /*Const*/ RectangleF) As Status
+	Function IntersectClip(rc As /*Const*/ RectangleF) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRect(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, CombineMode.Intersect))
 	End Function
 
-	Function IntersectClip(rc As /*Const*/ Rectangle) As Status
+	Function IntersectClip(rc As /*Const*/ Rectangle) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRectI(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, CombineMode.Intersect))
 	End Function
 
-	Function IntersectClip(region As /*Const*/ Region) As Status
+	Function IntersectClip(region As /*Const*/ Region) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRegion(nativeGraphics, region->nativeRegion, CombineMode.Intersect))
 	End Function
 
-	Function ExcludeClip(rc As /*Const*/ RectangleF) As Status
+	Function ExcludeClip(rc As /*Const*/ RectangleF) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRect(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, CombineMode.Exclude))
 	End Function
 
-	Function ExcludeClip(rc As /*Const*/ Rectangle) As Status
+	Function ExcludeClip(rc As /*Const*/ Rectangle) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRectI(nativeGraphics, rc.X, rc.Y, rc.Width, rc.Height, CombineMode.Exclude))
 	End Function
 
-	Function ExcludeClip(region As /*Const*/ Region) As Status
+	Function ExcludeClip(region As /*Const*/ Region) As Gdiplus.Status
 		Return SetStatus(GdipSetClipRegion(nativeGraphics, region->nativeRegion, CombineMode.Exclude))
 	End Function
 
-	Function ResetClip() As Status
+	Function ResetClip() As Gdiplus.Status
 		Return SetStatus(GdipResetClip(nativeGraphics))
 	End Function
 
-	Function TranslateClip(dx As Single, dy As Single) As Status
+	Function TranslateClip(dx As Single, dy As Single) As Gdiplus.Status
 		Return SetStatus(GdipTranslateClip(nativeGraphics, dx, dy))
 	End Function
 
-	Function TranslateClip(dx As Long, dy As Long) As Status
+	Function TranslateClip(dx As Long, dy As Long) As Gdiplus.Status
 		Return SetStatus(GdipTranslateClipI(nativeGraphics, dx, dy))
 	End Function
 
-	Const Function GetClip(region As Region) As Status
+	Const Function GetClip(region As Region) As Gdiplus.Status
 		Return SetStatus(GdipGetClip(nativeGraphics, region->nativeRegion))
 	End Function
 
-	Const Function GetClipBounds(rc As RectangleF) As Status
+	Const Function GetClipBounds(rc As RectangleF) As Gdiplus.Status
 		Return SetStatus(GdipGetClipBounds(nativeGraphics, rc))
 	End Function
 
-	Const Function GetClipBounds(rc As Rectangle) As Status
+	Const Function GetClipBounds(rc As Rectangle) As Gdiplus.Status
 		Return SetStatus(GdipGetClipBoundsI(nativeGraphics, rc))
 	End Function
 
-	Const Function GetVisibleClipBounds(rc As RectangleF) As Status
+	Const Function GetVisibleClipBounds(rc As RectangleF) As Gdiplus.Status
 		Return SetStatus(GdipGetVisibleClipBounds(nativeGraphics, rc))
 	End Function
 
-	Const Function GetVisibleClipBounds(rc As Rectangle) As Status
+	Const Function GetVisibleClipBounds(rc As Rectangle) As Gdiplus.Status
 		Return SetStatus(GdipGetVisibleClipBoundsI(nativeGraphics, rc))
 	End Function
@@ -1970,5 +1876,5 @@
 	End Function
 
-	Function EndContainer(state As GraphicsContainer) As Status
+	Function EndContainer(state As GraphicsContainer) As Gdiplus.Status
 		Return SetStatus(GdipEndContainer(nativeGraphics, state))
 	End Function
@@ -1984,7 +1890,7 @@
 	End Function
 
-	Const Function GetLastStatus() As Status
+	Const Function GetLastStatus() As Gdiplus.Status
 		Dim lastStatus = lastResult
-		lastResult = Status.Ok
+		lastResult = Gdiplus.Status.Ok
 		Return lastStatus
 	End Function
@@ -1994,20 +1900,17 @@
 '		Debug
 '	End Sub
-	Sub Operator =(gr As Graphics)
-		Debug
-	End Sub
 
 Protected
-	Sub Graphics(graphics As *GpGraphics)
-		lastResult = Status.Ok
+	Sub Graphics(graphics As *Gdiplus.GpGraphics)
+		lastResult = Gdiplus.Status.Ok
 		SetNativeGraphics(graphics)
 	End Sub
 
-	Sub SetNativeGraphics(graphics As *GpGraphics)
+	Sub SetNativeGraphics(graphics As *Gdiplus.GpGraphics)
 		This.nativeGraphics = graphics
 	End Sub
 
-	Const Function SetStatus(status As Status) As Status
-		If status <> Status.Ok Then
+	Const Function SetStatus(status As Gdiplus.Status) As Gdiplus.Status
+		If status <> Gdiplus.Status.Ok Then
 			lastResult = status
 		End If
@@ -2015,5 +1918,5 @@
 	End Function
 
-	Const Function GetNativeGraphics() As *GpGraphics
+	Const Function GetNativeGraphics() As *Gdiplus.GpGraphics
 		Return This.nativeGraphics
 	End Function
@@ -2024,7 +1927,10 @@
 
 Protected
-	nativeGraphics As *GpGraphics
-	lastResult As /*Mutable*/ Status
+	nativeGraphics As *Gdiplus.GpGraphics
+	lastResult As /*Mutable*/ Gdiplus.Status
 End Class
 
+End Namespace 'Drawing
+End Namespace 'System
+
 #endif
