with GNATCOM.Dispinterface;

package MSHTML.ISVGPathElement_Interface is

   type ISVGPathElement_Type is
     new GNATCOM.Dispinterface.Dispinterface_Type with null record;

   procedure Initialize (This : in out ISVGPathElement_Type);

   function Pointer (This : ISVGPathElement_Type)
     return Pointer_To_ISVGPathElement;

   procedure Attach (This    : in out ISVGPathElement_Type;
                     Pointer : in     Pointer_To_ISVGPathElement);

   procedure PutRef_pathLength
     (This : ISVGPathElement_Type;
      p    : Pointer_To_ISVGAnimatedNumber);

   function Get_pathLength
     (This : ISVGPathElement_Type)
     return Pointer_To_ISVGAnimatedNumber;

   function getTotalLength
     (This       : ISVGPathElement_Type)
     return Interfaces.C.C_float;

   function getPointAtLength
     (This          : ISVGPathElement_Type;
      fltdistance   : Interfaces.C.C_float)
     return Pointer_To_ISVGPoint;

   function getPathSegAtLength
     (This        : ISVGPathElement_Type;
      fltdistance : Interfaces.C.C_float)
     return Interfaces.C.long;

   function createSVGPathSegClosePath
     (This     : ISVGPathElement_Type)
     return Pointer_To_ISVGPathSegClosePath;

   function createSVGPathSegMovetoAbs
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegMovetoAbs;

   function createSVGPathSegMovetoRel
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegMovetoRel;

   function createSVGPathSegLinetoAbs
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegLinetoAbs;

   function createSVGPathSegLinetoRel
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegLinetoRel;

   function createSVGPathSegCurvetoCubicAbs
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float;
      x1       : Interfaces.C.C_float;
      y1       : Interfaces.C.C_float;
      x2       : Interfaces.C.C_float;
      y2       : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoCubicAbs;

   function createSVGPathSegCurvetoCubicRel
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float;
      x1       : Interfaces.C.C_float;
      y1       : Interfaces.C.C_float;
      x2       : Interfaces.C.C_float;
      y2       : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoCubicRel;

   function createSVGPathSegCurvetoQuadraticAbs
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float;
      x1       : Interfaces.C.C_float;
      y1       : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoQuadraticAbs;

   function createSVGPathSegCurvetoQuadraticRel
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float;
      x1       : Interfaces.C.C_float;
      y1       : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoQuadraticRel;

   function createSVGPathSegArcAbs
     (This         : ISVGPathElement_Type;
      x            : Interfaces.C.C_float;
      y            : Interfaces.C.C_float;
      r1           : Interfaces.C.C_float;
      r2           : Interfaces.C.C_float;
      angle        : Interfaces.C.C_float;
      largeArcFlag : GNATCOM.Types.VARIANT_BOOL;
      sweepFlag    : GNATCOM.Types.VARIANT_BOOL)
     return Pointer_To_ISVGPathSegArcAbs;

   function createSVGPathSegArcRel
     (This         : ISVGPathElement_Type;
      x            : Interfaces.C.C_float;
      y            : Interfaces.C.C_float;
      r1           : Interfaces.C.C_float;
      r2           : Interfaces.C.C_float;
      angle        : Interfaces.C.C_float;
      largeArcFlag : GNATCOM.Types.VARIANT_BOOL;
      sweepFlag    : GNATCOM.Types.VARIANT_BOOL)
     return Pointer_To_ISVGPathSegArcRel;

   function createSVGPathSegLinetoHorizontalAbs
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegLinetoHorizontalAbs;

   function createSVGPathSegLinetoHorizontalRel
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegLinetoHorizontalRel;

   function createSVGPathSegLinetoVerticalAbs
     (This     : ISVGPathElement_Type;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegLinetoVerticalAbs;

   function createSVGPathSegLinetoVerticalRel
     (This     : ISVGPathElement_Type;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegLinetoVerticalRel;

   function createSVGPathSegCurvetoCubicSmoothAbs
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float;
      x2       : Interfaces.C.C_float;
      y2       : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoCubicSmoothAbs;

   function createSVGPathSegCurvetoCubicSmoothRel
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float;
      x2       : Interfaces.C.C_float;
      y2       : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoCubicSmoothRel;

   function createSVGPathSegCurvetoQuadraticSmoothAbs
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoQuadraticSmoothAbs;

   function createSVGPathSegCurvetoQuadraticSmoothRel
     (This     : ISVGPathElement_Type;
      x        : Interfaces.C.C_float;
      y        : Interfaces.C.C_float)
     return Pointer_To_ISVGPathSegCurvetoQuadraticSmoothRel;

end MSHTML.ISVGPathElement_Interface;

