-- Autogenerated by MSIL2Ada v. 2
-- By: Martin C. Carlisle
--     Department of Computer Science
--     US Air Force Academy
--     carlislem@acm.org
pragma Extensions_Allowed(On);
with MSSyst.Object;
with MSIL_Types;
use MSIL_Types;
with type MSSyst.IDisposable.Ref is access;
with type MSSyst.Drawing.Drawing2D.GraphicsContainer.Ref is access;
with type MSSyst.Drawing.RectangleF.Valuetype is tagged;
with MSSyst.Drawing.GraphicsUnit;
with type MSSyst.Drawing.Rectangle.Valuetype is tagged;
with type MSSyst.Drawing.Color.Valuetype is tagged;
with type MSSyst.Runtime.Remoting.ObjRef.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.Drawing.Pen.Ref is access;
with type MSSyst.Drawing.PointF.Valuetype is tagged;
with type MSSyst.Drawing.Point.Valuetype is tagged;
with MSSyst.Drawing.Point;
with MSSyst.Drawing.PointF;
with MSSyst.Drawing.Drawing2D.FillMode;
with type MSSyst.Drawing.Icon.Ref is access;
with type MSSyst.Drawing.Image.Ref is access;
with type MSSyst.Drawing.Imaging.ImageAttributes.Ref is access;
with type MSSyst.Drawing.Graphics.DrawImageAbort.Ref is access;
with type MSSyst.Drawing.Drawing2D.GraphicsPath.Ref is access;
with MSSyst.Drawing.RectangleF;
with MSSyst.Drawing.Rectangle;
with type MSSyst.String.Ref is access;
with type MSSyst.Drawing.Font.Ref is access;
with type MSSyst.Drawing.Brush.Ref is access;
with type MSSyst.Drawing.StringFormat.Ref is access;
with type MSSyst.Drawing.Imaging.Metafile.Ref is access;
with type MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.Drawing.Region.Ref is access;
with MSSyst.Drawing.Drawing2D.FlushIntention;
with MSSyst.Drawing.Drawing2D.CompositingMode;
with MSSyst.Drawing.Drawing2D.CompositingQuality;
with MSSyst.Drawing.Drawing2D.InterpolationMode;
with MSSyst.Drawing.Drawing2D.PixelOffsetMode;
with MSSyst.Drawing.Drawing2D.SmoothingMode;
with MSSyst.Drawing.Text.TextRenderingHint;
with type MSSyst.Drawing.Drawing2D.Matrix.Ref is access;
with type MSSyst.Drawing.Region.Ref_array is access;
with type MSSyst.Drawing.SizeF.Valuetype is tagged;
with MSSyst.Drawing.Drawing2D.MatrixOrder;
with type MSSyst.Drawing.Drawing2D.GraphicsState.Ref is access;
with MSSyst.Drawing.Drawing2D.CombineMode;
with MSSyst.Drawing.Drawing2D.CoordinateSpace;
with MSSyst.MarshalByRefObject;
package MSSyst.Drawing.Graphics is
   type Typ;
   type Ref is access all Typ'Class;
   type Ref_addrof is access all Ref;
   type Ref_Arr is array(Natural range <>) of Ref;
   type Ref_Array is access all Ref_Arr;
   type Ref_Array_addrof is access all Ref_Array;
   type Typ(
         I_IDisposable : MSSyst.IDisposable.Ref
      ) is new MSSyst.MarshalByRefObject.Typ with record
      null;
   end record;
   procedure AddMetafileComment(
      This : access Typ;
      data : MSIL_Types.unsigned_int8_Arr);
   function BeginContainer(
      This : access Typ) return MSSyst.Drawing.Drawing2D.GraphicsContainer.Ref;
   function BeginContainer(
      This : access Typ;
      dstrect : MSSyst.Drawing.RectangleF.Valuetype;
      srcrect : MSSyst.Drawing.RectangleF.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype) return MSSyst.Drawing.Drawing2D.GraphicsContainer.Ref;
   function BeginContainer(
      This : access Typ;
      dstrect : MSSyst.Drawing.Rectangle.Valuetype;
      srcrect : MSSyst.Drawing.Rectangle.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype) return MSSyst.Drawing.Drawing2D.GraphicsContainer.Ref;
   procedure Clear(
      This : access Typ;
      color : MSSyst.Drawing.Color.Valuetype);
   procedure Dispose(
      This : access Typ);
   procedure DrawArc(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer;
      startAngle : Integer;
      sweepAngle : Integer);
   procedure DrawArc(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype;
      startAngle : Float;
      sweepAngle : Float);
   procedure DrawArc(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float;
      startAngle : Float;
      sweepAngle : Float);
   procedure DrawArc(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rect : MSSyst.Drawing.RectangleF.Valuetype;
      startAngle : Float;
      sweepAngle : Float);
   procedure DrawBezier(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      pt1 : MSSyst.Drawing.PointF.Valuetype;
      pt2 : MSSyst.Drawing.PointF.Valuetype;
      pt3 : MSSyst.Drawing.PointF.Valuetype;
      pt4 : MSSyst.Drawing.PointF.Valuetype);
   procedure DrawBezier(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x1 : Float;
      y1 : Float;
      x2 : Float;
      y2 : Float;
      x3 : Float;
      y3 : Float;
      x4 : Float;
      y4 : Float);
   procedure DrawBezier(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      pt1 : MSSyst.Drawing.Point.Valuetype;
      pt2 : MSSyst.Drawing.Point.Valuetype;
      pt3 : MSSyst.Drawing.Point.Valuetype;
      pt4 : MSSyst.Drawing.Point.Valuetype);
   procedure DrawBeziers(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure DrawBeziers(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array);
   procedure DrawClosedCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array;
      tension : Float;
      fillmode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype);
   procedure DrawClosedCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array);
   procedure DrawClosedCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array;
      tension : Float;
      fillmode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype);
   procedure DrawClosedCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure DrawCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array;
      offset : Integer;
      numberOfSegments : Integer;
      tension : Float);
   procedure DrawCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array;
      offset : Integer;
      numberOfSegments : Integer);
   procedure DrawCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure DrawCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array;
      offset : Integer;
      numberOfSegments : Integer;
      tension : Float);
   procedure DrawCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array;
      tension : Float);
   procedure DrawCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array;
      tension : Float);
   procedure DrawCurve(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array);
   procedure DrawEllipse(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawEllipse(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer);
   procedure DrawEllipse(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rect : MSSyst.Drawing.RectangleF.Valuetype);
   procedure DrawEllipse(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float);
   procedure DrawIcon(
      This : access Typ;
      icon : MSSyst.Drawing.Icon.Ref;
      targetRect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawIcon(
      This : access Typ;
      icon : MSSyst.Drawing.Icon.Ref;
      x : Integer;
      y : Integer);
   procedure DrawIconUnstretched(
      This : access Typ;
      icon : MSSyst.Drawing.Icon.Ref;
      targetRect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref;
      callbackData : Integer);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Integer;
      srcY : Integer;
      srcWidth : Integer;
      srcHeight : Integer;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Integer;
      srcY : Integer;
      srcWidth : Integer;
      srcHeight : Integer;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttrs : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref;
      callbackData : MSIL_Types.native_int);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Integer;
      srcY : Integer;
      srcWidth : Integer;
      srcHeight : Integer;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Float;
      srcY : Float;
      srcWidth : Float;
      srcHeight : Float;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttrs : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Float;
      srcY : Float;
      srcWidth : Float;
      srcHeight : Float;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttrs : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref;
      callbackData : MSIL_Types.native_int);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Integer;
      srcY : Integer;
      srcWidth : Integer;
      srcHeight : Integer;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref;
      callbackData : Integer);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref;
      callback : MSSyst.Drawing.Graphics.DrawImageAbort.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Float;
      srcY : Float;
      srcWidth : Float;
      srcHeight : Float;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttrs : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Float;
      srcY : Float;
      srcWidth : Float;
      srcHeight : Float;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      rect : MSSyst.Drawing.RectangleF.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      point : MSSyst.Drawing.PointF.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Float;
      y : Float);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      point : MSSyst.Drawing.Point.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Float;
      y : Float;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Integer;
      y : Integer;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Integer;
      y : Integer);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawImageUnscaled(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawImageUnscaled(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer);
   procedure DrawImageUnscaled(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      point : MSSyst.Drawing.Point.Valuetype);
   procedure DrawImageUnscaled(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Integer;
      y : Integer);
   procedure DrawLine(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      pt1 : MSSyst.Drawing.PointF.Valuetype;
      pt2 : MSSyst.Drawing.PointF.Valuetype);
   procedure DrawLine(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x1 : Float;
      y1 : Float;
      x2 : Float;
      y2 : Float);
   procedure DrawLine(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      pt1 : MSSyst.Drawing.Point.Valuetype;
      pt2 : MSSyst.Drawing.Point.Valuetype);
   procedure DrawLine(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x1 : Integer;
      y1 : Integer;
      x2 : Integer;
      y2 : Integer);
   procedure DrawLines(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure DrawLines(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array);
   procedure DrawPath(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      path : MSSyst.Drawing.Drawing2D.GraphicsPath.Ref);
   procedure DrawPie(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float;
      startAngle : Float;
      sweepAngle : Float);
   procedure DrawPie(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer;
      startAngle : Integer;
      sweepAngle : Integer);
   procedure DrawPie(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype;
      startAngle : Float;
      sweepAngle : Float);
   procedure DrawPie(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rect : MSSyst.Drawing.RectangleF.Valuetype;
      startAngle : Float;
      sweepAngle : Float);
   procedure DrawPolygon(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array);
   procedure DrawPolygon(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure DrawRectangle(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawRectangle(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer);
   procedure DrawRectangle(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float);
   procedure DrawRectangles(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rects : MSSyst.Drawing.RectangleF.Valuetype_array);
   procedure DrawRectangles(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rects : MSSyst.Drawing.Rectangle.Valuetype_array);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      point : MSSyst.Drawing.PointF.Valuetype;
      format : MSSyst.Drawing.StringFormat.Ref);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      layoutRectangle : MSSyst.Drawing.RectangleF.Valuetype);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      layoutRectangle : MSSyst.Drawing.RectangleF.Valuetype;
      format : MSSyst.Drawing.StringFormat.Ref);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Float;
      y : Float);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      point : MSSyst.Drawing.PointF.Valuetype);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Float;
      y : Float;
      format : MSSyst.Drawing.StringFormat.Ref);
   procedure EndContainer(
      This : access Typ;
      container : MSSyst.Drawing.Drawing2D.GraphicsContainer.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.Point.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.PointF.Valuetype;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.Point.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.Point.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.PointF.Valuetype;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.PointF.Valuetype;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.RectangleF.Valuetype;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.Point.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.Point.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.RectangleF.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.RectangleF.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.PointF.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.PointF.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.Point.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoint : MSSyst.Drawing.PointF.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.RectangleF.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.PointF.Valuetype_array;
      srcRect : MSSyst.Drawing.RectangleF.Valuetype;
      unit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref;
      callbackData : MSIL_Types.native_int;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure EnumerateMetafile(
      This : access Typ;
      metafile : MSSyst.Drawing.Imaging.Metafile.Ref;
      destPoints : MSSyst.Drawing.Point.Valuetype_array;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      callback : MSSyst.Drawing.Graphics.EnumerateMetafileProc.Ref);
   procedure ExcludeClip(
      This : access Typ;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure ExcludeClip(
      This : access Typ;
      region : MSSyst.Drawing.Region.Ref);
   procedure FillClosedCurve(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array);
   procedure FillClosedCurve(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array;
      fillmode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype);
   procedure FillClosedCurve(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array;
      fillmode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype);
   procedure FillClosedCurve(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array;
      fillmode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype;
      tension : Float);
   procedure FillClosedCurve(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array;
      fillmode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype;
      tension : Float);
   procedure FillClosedCurve(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure FillEllipse(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure FillEllipse(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float);
   procedure FillEllipse(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rect : MSSyst.Drawing.RectangleF.Valuetype);
   procedure FillEllipse(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer);
   procedure FillPath(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      path : MSSyst.Drawing.Drawing2D.GraphicsPath.Ref);
   procedure FillPie(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer;
      startAngle : Integer;
      sweepAngle : Integer);
   procedure FillPie(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype;
      startAngle : Float;
      sweepAngle : Float);
   procedure FillPie(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float;
      startAngle : Float;
      sweepAngle : Float);
   procedure FillPolygon(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array);
   procedure FillPolygon(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.PointF.Valuetype_array;
      fillMode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype);
   procedure FillPolygon(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure FillPolygon(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array;
      fillMode : MSSyst.Drawing.Drawing2D.FillMode.Valuetype);
   procedure FillRectangle(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure FillRectangle(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer);
   procedure FillRectangle(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rect : MSSyst.Drawing.RectangleF.Valuetype);
   procedure FillRectangle(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Float;
      y : Float;
      width : Float;
      height : Float);
   procedure FillRectangles(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rects : MSSyst.Drawing.Rectangle.Valuetype_array);
   procedure FillRectangles(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rects : MSSyst.Drawing.RectangleF.Valuetype_array);
   procedure FillRegion(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      region : MSSyst.Drawing.Region.Ref);
   procedure Flush(
      This : access Typ;
      intention : MSSyst.Drawing.Drawing2D.FlushIntention.Valuetype);
   procedure Flush(
      This : access Typ);
   function FromHdc(
      hdc : MSIL_Types.native_int;
      hdevice : MSIL_Types.native_int) return MSSyst.Drawing.Graphics.Ref;
   function FromHdc(
      hdc : MSIL_Types.native_int) return MSSyst.Drawing.Graphics.Ref;
   function FromHdcInternal(
      hdc : MSIL_Types.native_int) return MSSyst.Drawing.Graphics.Ref;
   function FromHwnd(
      hwnd : MSIL_Types.native_int) return MSSyst.Drawing.Graphics.Ref;
   function FromHwndInternal(
      hwnd : MSIL_Types.native_int) return MSSyst.Drawing.Graphics.Ref;
   function FromImage(
      image : MSSyst.Drawing.Image.Ref) return MSSyst.Drawing.Graphics.Ref;
   function get_Clip(
      This : access Typ) return MSSyst.Drawing.Region.Ref;
   function get_ClipBounds(
      This : access Typ) return MSSyst.Drawing.RectangleF.Valuetype;
   function get_CompositingMode(
      This : access Typ) return MSSyst.Drawing.Drawing2D.CompositingMode.Valuetype;
   function get_CompositingQuality(
      This : access Typ) return MSSyst.Drawing.Drawing2D.CompositingQuality.Valuetype;
   function get_DpiX(
      This : access Typ) return Float;
   function get_DpiY(
      This : access Typ) return Float;
   function get_InterpolationMode(
      This : access Typ) return MSSyst.Drawing.Drawing2D.InterpolationMode.Valuetype;
   function get_IsClipEmpty(
      This : access Typ) return Standard.Boolean;
   function get_IsVisibleClipEmpty(
      This : access Typ) return Standard.Boolean;
   function get_PageScale(
      This : access Typ) return Float;
   function get_PageUnit(
      This : access Typ) return MSSyst.Drawing.GraphicsUnit.Valuetype;
   function get_PixelOffsetMode(
      This : access Typ) return MSSyst.Drawing.Drawing2D.PixelOffsetMode.Valuetype;
   function get_RenderingOrigin(
      This : access Typ) return MSSyst.Drawing.Point.Valuetype;
   function get_SmoothingMode(
      This : access Typ) return MSSyst.Drawing.Drawing2D.SmoothingMode.Valuetype;
   function get_TextContrast(
      This : access Typ) return Integer;
   function get_TextRenderingHint(
      This : access Typ) return MSSyst.Drawing.Text.TextRenderingHint.Valuetype;
   function get_Transform(
      This : access Typ) return MSSyst.Drawing.Drawing2D.Matrix.Ref;
   function get_VisibleClipBounds(
      This : access Typ) return MSSyst.Drawing.RectangleF.Valuetype;
   function GetHalftonePalette return MSIL_Types.native_int;
   function GetHdc(
      This : access Typ) return MSIL_Types.native_int;
   function GetNearestColor(
      This : access Typ;
      color : MSSyst.Drawing.Color.Valuetype) return MSSyst.Drawing.Color.Valuetype;
   procedure IntersectClip(
      This : access Typ;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure IntersectClip(
      This : access Typ;
      region : MSSyst.Drawing.Region.Ref);
   procedure IntersectClip(
      This : access Typ;
      rect : MSSyst.Drawing.RectangleF.Valuetype);
   function IsVisible(
      This : access Typ;
      x : Float;
      y : Float;
      width : Float;
      height : Float) return Standard.Boolean;
   function IsVisible(
      This : access Typ;
      rect : MSSyst.Drawing.Rectangle.Valuetype) return Standard.Boolean;
   function IsVisible(
      This : access Typ;
      rect : MSSyst.Drawing.RectangleF.Valuetype) return Standard.Boolean;
   function IsVisible(
      This : access Typ;
      x : Float;
      y : Float) return Standard.Boolean;
   function IsVisible(
      This : access Typ;
      point : MSSyst.Drawing.Point.Valuetype) return Standard.Boolean;
   function IsVisible(
      This : access Typ;
      x : Integer;
      y : Integer) return Standard.Boolean;
   function IsVisible(
      This : access Typ;
      x : Integer;
      y : Integer;
      width : Integer;
      height : Integer) return Standard.Boolean;
   function IsVisible(
      This : access Typ;
      point : MSSyst.Drawing.PointF.Valuetype) return Standard.Boolean;
   function MeasureCharacterRanges(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      layoutRect : MSSyst.Drawing.RectangleF.Valuetype;
      stringFormat : MSSyst.Drawing.StringFormat.Ref) return MSSyst.Drawing.Region.Ref_array;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref) return MSSyst.Drawing.SizeF.Valuetype;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      layoutArea : MSSyst.Drawing.SizeF.Valuetype;
      stringFormat : MSSyst.Drawing.StringFormat.Ref) return MSSyst.Drawing.SizeF.Valuetype;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      width : Integer;
      format : MSSyst.Drawing.StringFormat.Ref) return MSSyst.Drawing.SizeF.Valuetype;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      width : Integer) return MSSyst.Drawing.SizeF.Valuetype;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      layoutArea : MSSyst.Drawing.SizeF.Valuetype) return MSSyst.Drawing.SizeF.Valuetype;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      layoutArea : MSSyst.Drawing.SizeF.Valuetype;
      stringFormat : MSSyst.Drawing.StringFormat.Ref;
      charactersFitted : MSIL_Types.Int32_addrof;
      linesFilled : MSIL_Types.Int32_addrof) return MSSyst.Drawing.SizeF.Valuetype;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      origin : MSSyst.Drawing.PointF.Valuetype;
      stringFormat : MSSyst.Drawing.StringFormat.Ref) return MSSyst.Drawing.SizeF.Valuetype;
   procedure MultiplyTransform(
      This : access Typ;
      matrix : MSSyst.Drawing.Drawing2D.Matrix.Ref);
   procedure MultiplyTransform(
      This : access Typ;
      matrix : MSSyst.Drawing.Drawing2D.Matrix.Ref;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
   procedure ReleaseHdc(
      This : access Typ;
      hdc : MSIL_Types.native_int);
   procedure ReleaseHdcInternal(
      This : access Typ;
      hdc : MSIL_Types.native_int);
   procedure ResetClip(
      This : access Typ);
   procedure ResetTransform(
      This : access Typ);
   procedure Restore(
      This : access Typ;
      gstate : MSSyst.Drawing.Drawing2D.GraphicsState.Ref);
   procedure RotateTransform(
      This : access Typ;
      angle : Float;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
   procedure RotateTransform(
      This : access Typ;
      angle : Float);
   function Save(
      This : access Typ) return MSSyst.Drawing.Drawing2D.GraphicsState.Ref;
   procedure ScaleTransform(
      This : access Typ;
      sx : Float;
      sy : Float);
   procedure ScaleTransform(
      This : access Typ;
      sx : Float;
      sy : Float;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
   procedure set_Clip(
      This : access Typ;
      value : MSSyst.Drawing.Region.Ref);
   procedure set_CompositingMode(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.CompositingMode.Valuetype);
   procedure set_CompositingQuality(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.CompositingQuality.Valuetype);
   procedure set_InterpolationMode(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.InterpolationMode.Valuetype);
   procedure set_PageScale(
      This : access Typ;
      value : Float);
   procedure set_PageUnit(
      This : access Typ;
      value : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure set_PixelOffsetMode(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.PixelOffsetMode.Valuetype);
   procedure set_RenderingOrigin(
      This : access Typ;
      value : MSSyst.Drawing.Point.Valuetype);
   procedure set_SmoothingMode(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.SmoothingMode.Valuetype);
   procedure set_TextContrast(
      This : access Typ;
      value : Integer);
   procedure set_TextRenderingHint(
      This : access Typ;
      value : MSSyst.Drawing.Text.TextRenderingHint.Valuetype);
   procedure set_Transform(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.Matrix.Ref);
   procedure SetClip(
      This : access Typ;
      rect : MSSyst.Drawing.Rectangle.Valuetype;
      combineMode : MSSyst.Drawing.Drawing2D.CombineMode.Valuetype);
   procedure SetClip(
      This : access Typ;
      rect : MSSyst.Drawing.RectangleF.Valuetype);
   procedure SetClip(
      This : access Typ;
      rect : MSSyst.Drawing.RectangleF.Valuetype;
      combineMode : MSSyst.Drawing.Drawing2D.CombineMode.Valuetype);
   procedure SetClip(
      This : access Typ;
      g : MSSyst.Drawing.Graphics.Ref);
   procedure SetClip(
      This : access Typ;
      g : MSSyst.Drawing.Graphics.Ref;
      combineMode : MSSyst.Drawing.Drawing2D.CombineMode.Valuetype);
   procedure SetClip(
      This : access Typ;
      rect : MSSyst.Drawing.Rectangle.Valuetype);
   procedure SetClip(
      This : access Typ;
      path : MSSyst.Drawing.Drawing2D.GraphicsPath.Ref);
   procedure SetClip(
      This : access Typ;
      region : MSSyst.Drawing.Region.Ref;
      combineMode : MSSyst.Drawing.Drawing2D.CombineMode.Valuetype);
   procedure SetClip(
      This : access Typ;
      path : MSSyst.Drawing.Drawing2D.GraphicsPath.Ref;
      combineMode : MSSyst.Drawing.Drawing2D.CombineMode.Valuetype);
   procedure TransformPoints(
      This : access Typ;
      destSpace : MSSyst.Drawing.Drawing2D.CoordinateSpace.Valuetype;
      srcSpace : MSSyst.Drawing.Drawing2D.CoordinateSpace.Valuetype;
      pts : MSSyst.Drawing.PointF.Valuetype_array);
   procedure TransformPoints(
      This : access Typ;
      destSpace : MSSyst.Drawing.Drawing2D.CoordinateSpace.Valuetype;
      srcSpace : MSSyst.Drawing.Drawing2D.CoordinateSpace.Valuetype;
      pts : MSSyst.Drawing.Point.Valuetype_array);
   procedure TranslateClip(
      This : access Typ;
      dx : Integer;
      dy : Integer);
   procedure TranslateClip(
      This : access Typ;
      dx : Float;
      dy : Float);
   procedure TranslateTransform(
      This : access Typ;
      dx : Float;
      dy : Float);
   procedure TranslateTransform(
      This : access Typ;
      dx : Float;
      dy : Float;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
private
   pragma Convention(MSIL,Typ);
   pragma Import(MSIL,AddMetafileComment,"AddMetafileComment");
   pragma Import(MSIL,BeginContainer,"BeginContainer");
   pragma Import(MSIL,Clear,"Clear");
   pragma Import(MSIL,Dispose,"Dispose");
   pragma Import(MSIL,DrawArc,"DrawArc");
   pragma Import(MSIL,DrawBezier,"DrawBezier");
   pragma Import(MSIL,DrawBeziers,"DrawBeziers");
   pragma Import(MSIL,DrawClosedCurve,"DrawClosedCurve");
   pragma Import(MSIL,DrawCurve,"DrawCurve");
   pragma Import(MSIL,DrawEllipse,"DrawEllipse");
   pragma Import(MSIL,DrawIcon,"DrawIcon");
   pragma Import(MSIL,DrawIconUnstretched,"DrawIconUnstretched");
   pragma Import(MSIL,DrawImage,"DrawImage");
   pragma Import(MSIL,DrawImageUnscaled,"DrawImageUnscaled");
   pragma Import(MSIL,DrawLine,"DrawLine");
   pragma Import(MSIL,DrawLines,"DrawLines");
   pragma Import(MSIL,DrawPath,"DrawPath");
   pragma Import(MSIL,DrawPie,"DrawPie");
   pragma Import(MSIL,DrawPolygon,"DrawPolygon");
   pragma Import(MSIL,DrawRectangle,"DrawRectangle");
   pragma Import(MSIL,DrawRectangles,"DrawRectangles");
   pragma Import(MSIL,DrawString,"DrawString");
   pragma Import(MSIL,EndContainer,"EndContainer");
   pragma Import(MSIL,EnumerateMetafile,"EnumerateMetafile");
   pragma Import(MSIL,ExcludeClip,"ExcludeClip");
   pragma Import(MSIL,FillClosedCurve,"FillClosedCurve");
   pragma Import(MSIL,FillEllipse,"FillEllipse");
   pragma Import(MSIL,FillPath,"FillPath");
   pragma Import(MSIL,FillPie,"FillPie");
   pragma Import(MSIL,FillPolygon,"FillPolygon");
   pragma Import(MSIL,FillRectangle,"FillRectangle");
   pragma Import(MSIL,FillRectangles,"FillRectangles");
   pragma Import(MSIL,FillRegion,"FillRegion");
   pragma Import(MSIL,Flush,"Flush");
   pragma Import(MSIL,FromHdc,"FromHdc");
   pragma Import(MSIL,FromHdcInternal,"FromHdcInternal");
   pragma Import(MSIL,FromHwnd,"FromHwnd");
   pragma Import(MSIL,FromHwndInternal,"FromHwndInternal");
   pragma Import(MSIL,FromImage,"FromImage");
   pragma Import(MSIL,get_Clip,"get_Clip");
   pragma Import(MSIL,get_ClipBounds,"get_ClipBounds");
   pragma Import(MSIL,get_CompositingMode,"get_CompositingMode");
   pragma Import(MSIL,get_CompositingQuality,"get_CompositingQuality");
   pragma Import(MSIL,get_DpiX,"get_DpiX");
   pragma Import(MSIL,get_DpiY,"get_DpiY");
   pragma Import(MSIL,get_InterpolationMode,"get_InterpolationMode");
   pragma Import(MSIL,get_IsClipEmpty,"get_IsClipEmpty");
   pragma Import(MSIL,get_IsVisibleClipEmpty,"get_IsVisibleClipEmpty");
   pragma Import(MSIL,get_PageScale,"get_PageScale");
   pragma Import(MSIL,get_PageUnit,"get_PageUnit");
   pragma Import(MSIL,get_PixelOffsetMode,"get_PixelOffsetMode");
   pragma Import(MSIL,get_RenderingOrigin,"get_RenderingOrigin");
   pragma Import(MSIL,get_SmoothingMode,"get_SmoothingMode");
   pragma Import(MSIL,get_TextContrast,"get_TextContrast");
   pragma Import(MSIL,get_TextRenderingHint,"get_TextRenderingHint");
   pragma Import(MSIL,get_Transform,"get_Transform");
   pragma Import(MSIL,get_VisibleClipBounds,"get_VisibleClipBounds");
   pragma Import(MSIL,GetHalftonePalette,"GetHalftonePalette");
   pragma Import(MSIL,GetHdc,"GetHdc");
   pragma Import(MSIL,GetNearestColor,"GetNearestColor");
   pragma Import(MSIL,IntersectClip,"IntersectClip");
   pragma Import(MSIL,IsVisible,"IsVisible");
   pragma Import(MSIL,MeasureCharacterRanges,"MeasureCharacterRanges");
   pragma Import(MSIL,MeasureString,"MeasureString");
   pragma Import(MSIL,MultiplyTransform,"MultiplyTransform");
   pragma Import(MSIL,ReleaseHdc,"ReleaseHdc");
   pragma Import(MSIL,ReleaseHdcInternal,"ReleaseHdcInternal");
   pragma Import(MSIL,ResetClip,"ResetClip");
   pragma Import(MSIL,ResetTransform,"ResetTransform");
   pragma Import(MSIL,Restore,"Restore");
   pragma Import(MSIL,RotateTransform,"RotateTransform");
   pragma Import(MSIL,Save,"Save");
   pragma Import(MSIL,ScaleTransform,"ScaleTransform");
   pragma Import(MSIL,set_Clip,"set_Clip");
   pragma Import(MSIL,set_CompositingMode,"set_CompositingMode");
   pragma Import(MSIL,set_CompositingQuality,"set_CompositingQuality");
   pragma Import(MSIL,set_InterpolationMode,"set_InterpolationMode");
   pragma Import(MSIL,set_PageScale,"set_PageScale");
   pragma Import(MSIL,set_PageUnit,"set_PageUnit");
   pragma Import(MSIL,set_PixelOffsetMode,"set_PixelOffsetMode");
   pragma Import(MSIL,set_RenderingOrigin,"set_RenderingOrigin");
   pragma Import(MSIL,set_SmoothingMode,"set_SmoothingMode");
   pragma Import(MSIL,set_TextContrast,"set_TextContrast");
   pragma Import(MSIL,set_TextRenderingHint,"set_TextRenderingHint");
   pragma Import(MSIL,set_Transform,"set_Transform");
   pragma Import(MSIL,SetClip,"SetClip");
   pragma Import(MSIL,TransformPoints,"TransformPoints");
   pragma Import(MSIL,TranslateClip,"TranslateClip");
   pragma Import(MSIL,TranslateTransform,"TranslateTransform");
end MSSyst.Drawing.Graphics;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Drawing.Graphics,
   ".ver 1:0:3300:0 .publickeytoken=( b0 3f 5f 7f 11 d5 0a 3a )",
   "[System.Drawing]System.Drawing.Graphics");
