package body MSHTML.DispCanvasRenderingContext2D_Object is

   function Get_canvas
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_canvas);
   end Get_canvas;

   procedure restore
     (This : DispCanvasRenderingContext2D_Type)
   is
   begin
      Invoke (This, DispCanvasRenderingContext2D_restore);
   end restore;

   procedure save
     (This : DispCanvasRenderingContext2D_Type)
   is
   begin
      Invoke (This, DispCanvasRenderingContext2D_save);
   end save;

   procedure rotate
     (This  : DispCanvasRenderingContext2D_Type;
      angle : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_rotate,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => angle),
         Free);
   end rotate;

   procedure scale
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_scale,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x),
         Free);
   end scale;

   procedure setTransform
     (This : DispCanvasRenderingContext2D_Type;
      m11  : GNATCOM.Types.VARIANT;
      m12  : GNATCOM.Types.VARIANT;
      m21  : GNATCOM.Types.VARIANT;
      m22  : GNATCOM.Types.VARIANT;
      dx   : GNATCOM.Types.VARIANT;
      dy   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_setTransform,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => dy,
          2 => dx,
          3 => m22,
          4 => m21,
          5 => m12,
          6 => m11),
         Free);
   end setTransform;

   procedure transform
     (This : DispCanvasRenderingContext2D_Type;
      m11  : GNATCOM.Types.VARIANT;
      m12  : GNATCOM.Types.VARIANT;
      m21  : GNATCOM.Types.VARIANT;
      m22  : GNATCOM.Types.VARIANT;
      dx   : GNATCOM.Types.VARIANT;
      dy   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_transform,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => dy,
          2 => dx,
          3 => m22,
          4 => m21,
          5 => m12,
          6 => m11),
         Free);
   end transform;

   procedure translate
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_translate,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x),
         Free);
   end translate;

   procedure Put_globalAlpha
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_globalAlpha,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_globalAlpha;

   function Get_globalAlpha
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_globalAlpha);
   end Get_globalAlpha;

   procedure Put_globalCompositeOperation
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_globalCompositeOperation,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_globalCompositeOperation;

   function Get_globalCompositeOperation
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_globalCompositeOperation);
   end Get_globalCompositeOperation;

   procedure Put_fillStyle
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_fillStyle,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_fillStyle;

   function Get_fillStyle
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_fillStyle);
   end Get_fillStyle;

   procedure Put_strokeStyle
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_strokeStyle,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_strokeStyle;

   function Get_strokeStyle
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_strokeStyle);
   end Get_strokeStyle;

   function createLinearGradient
     (This : DispCanvasRenderingContext2D_Type;
      x0   : GNATCOM.Types.VARIANT;
      y0   : GNATCOM.Types.VARIANT;
      x1   : GNATCOM.Types.VARIANT;
      y1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispCanvasRenderingContext2D_createLinearGradient,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y1,
          2 => x1,
          3 => y0,
          4 => x0),
         Free);
   end createLinearGradient;

   function createRadialGradient
     (This : DispCanvasRenderingContext2D_Type;
      x0   : GNATCOM.Types.VARIANT;
      y0   : GNATCOM.Types.VARIANT;
      r0   : GNATCOM.Types.VARIANT;
      x1   : GNATCOM.Types.VARIANT;
      y1   : GNATCOM.Types.VARIANT;
      r1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispCanvasRenderingContext2D_createRadialGradient,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => r1,
          2 => y1,
          3 => x1,
          4 => r0,
          5 => y0,
          6 => x0),
         Free);
   end createRadialGradient;

   function createPattern
     (This       : DispCanvasRenderingContext2D_Type;
      Image      : GNATCOM.Types.VARIANT;
      repetition : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispCanvasRenderingContext2D_createPattern,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => repetition,
          2 => Image),
         Free);
   end createPattern;

   procedure Put_lineCap
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_lineCap,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_lineCap;

   function Get_lineCap
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_lineCap);
   end Get_lineCap;

   procedure Put_lineJoin
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_lineJoin,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_lineJoin;

   function Get_lineJoin
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_lineJoin);
   end Get_lineJoin;

   procedure Put_lineWidth
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_lineWidth,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_lineWidth;

   function Get_lineWidth
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_lineWidth);
   end Get_lineWidth;

   procedure Put_miterLimit
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_miterLimit,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_miterLimit;

   function Get_miterLimit
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_miterLimit);
   end Get_miterLimit;

   procedure Put_shadowBlur
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_shadowBlur,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_shadowBlur;

   function Get_shadowBlur
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_shadowBlur);
   end Get_shadowBlur;

   procedure Put_shadowColor
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_shadowColor,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_shadowColor;

   function Get_shadowColor
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_shadowColor);
   end Get_shadowColor;

   procedure Put_shadowOffsetX
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_shadowOffsetX,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_shadowOffsetX;

   function Get_shadowOffsetX
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_shadowOffsetX);
   end Get_shadowOffsetX;

   procedure Put_shadowOffsetY
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_shadowOffsetY,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_shadowOffsetY;

   function Get_shadowOffsetY
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_shadowOffsetY);
   end Get_shadowOffsetY;

   procedure clearRect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_clearRect,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => h,
          2 => w,
          3 => y,
          4 => x),
         Free);
   end clearRect;

   procedure fillRect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_fillRect,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => h,
          2 => w,
          3 => y,
          4 => x),
         Free);
   end fillRect;

   procedure strokeRect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_strokeRect,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => h,
          2 => w,
          3 => y,
          4 => x),
         Free);
   end strokeRect;

   procedure arc
     (This          : DispCanvasRenderingContext2D_Type;
      x             : GNATCOM.Types.VARIANT;
      y             : GNATCOM.Types.VARIANT;
      radius        : GNATCOM.Types.VARIANT;
      startAngle    : GNATCOM.Types.VARIANT;
      endAngle      : GNATCOM.Types.VARIANT;
      anticlockwise : GNATCOM.Types.VARIANT;
      Free          : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_arc,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => anticlockwise,
          2 => endAngle,
          3 => startAngle,
          4 => radius,
          5 => y,
          6 => x),
         Free);
   end arc;

   procedure arcTo
     (This   : DispCanvasRenderingContext2D_Type;
      x1     : GNATCOM.Types.VARIANT;
      y1     : GNATCOM.Types.VARIANT;
      x2     : GNATCOM.Types.VARIANT;
      y2     : GNATCOM.Types.VARIANT;
      radius : GNATCOM.Types.VARIANT;
      Free   : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_arcTo,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => radius,
          2 => y2,
          3 => x2,
          4 => y1,
          5 => x1),
         Free);
   end arcTo;

   procedure beginPath
     (This : DispCanvasRenderingContext2D_Type)
   is
   begin
      Invoke (This, DispCanvasRenderingContext2D_beginPath);
   end beginPath;

   procedure bezierCurveTo
     (This : DispCanvasRenderingContext2D_Type;
      cp1x : GNATCOM.Types.VARIANT;
      cp1y : GNATCOM.Types.VARIANT;
      cp2x : GNATCOM.Types.VARIANT;
      cp2y : GNATCOM.Types.VARIANT;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_bezierCurveTo,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x,
          3 => cp2y,
          4 => cp2x,
          5 => cp1y,
          6 => cp1x),
         Free);
   end bezierCurveTo;

   procedure clip
     (This : DispCanvasRenderingContext2D_Type)
   is
   begin
      Invoke (This, DispCanvasRenderingContext2D_clip);
   end clip;

   procedure closePath
     (This : DispCanvasRenderingContext2D_Type)
   is
   begin
      Invoke (This, DispCanvasRenderingContext2D_closePath);
   end closePath;

   procedure fill
     (This : DispCanvasRenderingContext2D_Type)
   is
   begin
      Invoke (This, DispCanvasRenderingContext2D_fill);
   end fill;

   procedure lineTo
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_lineTo,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x),
         Free);
   end lineTo;

   procedure moveTo
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_moveTo,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x),
         Free);
   end moveTo;

   procedure quadraticCurveTo
     (This : DispCanvasRenderingContext2D_Type;
      cpx  : GNATCOM.Types.VARIANT;
      cpy  : GNATCOM.Types.VARIANT;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_quadraticCurveTo,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x,
          3 => cpy,
          4 => cpx),
         Free);
   end quadraticCurveTo;

   procedure rect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_rect,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => h,
          2 => w,
          3 => y,
          4 => x),
         Free);
   end rect;

   procedure stroke
     (This : DispCanvasRenderingContext2D_Type)
   is
   begin
      Invoke (This, DispCanvasRenderingContext2D_stroke);
   end stroke;

   function isPointInPath
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispCanvasRenderingContext2D_isPointInPath,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x),
         Free);
   end isPointInPath;

   procedure Put_font
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_font,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_font;

   function Get_font
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_font);
   end Get_font;

   procedure Put_textAlign
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_textAlign,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_textAlign;

   function Get_textAlign
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_textAlign);
   end Get_textAlign;

   procedure Put_textBaseline
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         DispCanvasRenderingContext2D_Put_textBaseline,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_textBaseline;

   function Get_textBaseline
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispCanvasRenderingContext2D_Get_textBaseline);
   end Get_textBaseline;

   procedure fillText
     (This     : DispCanvasRenderingContext2D_Type;
      text     : GNATCOM.Types.VARIANT;
      x        : GNATCOM.Types.VARIANT;
      y        : GNATCOM.Types.VARIANT;
      maxWidth : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_fillText,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => maxWidth,
          2 => y,
          3 => x,
          4 => text),
         Free);
   end fillText;

   function measureText
     (This : DispCanvasRenderingContext2D_Type;
      text : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispCanvasRenderingContext2D_measureText,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => text),
         Free);
   end measureText;

   procedure strokeText
     (This     : DispCanvasRenderingContext2D_Type;
      text     : GNATCOM.Types.VARIANT;
      x        : GNATCOM.Types.VARIANT;
      y        : GNATCOM.Types.VARIANT;
      maxWidth : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_strokeText,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => maxWidth,
          2 => y,
          3 => x,
          4 => text),
         Free);
   end strokeText;

   procedure drawImage
     (This : DispCanvasRenderingContext2D_Type;
      pSrc : GNATCOM.Types.VARIANT;
      a1   : GNATCOM.Types.VARIANT;
      a2   : GNATCOM.Types.VARIANT;
      a3   : GNATCOM.Types.VARIANT;
      a4   : GNATCOM.Types.VARIANT;
      a5   : GNATCOM.Types.VARIANT;
      a6   : GNATCOM.Types.VARIANT;
      a7   : GNATCOM.Types.VARIANT;
      a8   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_drawImage,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => a8,
          2 => a7,
          3 => a6,
          4 => a5,
          5 => a4,
          6 => a3,
          7 => a2,
          8 => a1,
          9 => pSrc),
         Free);
   end drawImage;

   function createImageData
     (This : DispCanvasRenderingContext2D_Type;
      a1   : GNATCOM.Types.VARIANT;
      a2   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispCanvasRenderingContext2D_createImageData,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => a2,
          2 => a1),
         Free);
   end createImageData;

   function getImageData
     (This : DispCanvasRenderingContext2D_Type;
      sx   : GNATCOM.Types.VARIANT;
      sy   : GNATCOM.Types.VARIANT;
      sw   : GNATCOM.Types.VARIANT;
      sh   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispCanvasRenderingContext2D_getImageData,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => sh,
          2 => sw,
          3 => sy,
          4 => sx),
         Free);
   end getImageData;

   procedure putImageData
     (This        : DispCanvasRenderingContext2D_Type;
      imagedata   : GNATCOM.Types.VARIANT;
      dx          : GNATCOM.Types.VARIANT;
      dy          : GNATCOM.Types.VARIANT;
      dirtyX      : GNATCOM.Types.VARIANT;
      dirtyY      : GNATCOM.Types.VARIANT;
      dirtyWidth  : GNATCOM.Types.VARIANT;
      dirtyHeight : GNATCOM.Types.VARIANT;
      Free        : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispCanvasRenderingContext2D_putImageData,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => dirtyHeight,
          2 => dirtyWidth,
          3 => dirtyY,
          4 => dirtyX,
          5 => dy,
          6 => dx,
          7 => imagedata),
         Free);
   end putImageData;

end MSHTML.DispCanvasRenderingContext2D_Object;

