with GNATCOM.Dispinterface;

package MSHTML.ISVGSVGElement_Interface is

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

   procedure Initialize (This : in out ISVGSVGElement_Type);

   function Pointer (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGSVGElement;

   procedure Attach (This    : in out ISVGSVGElement_Type;
                     Pointer : in     Pointer_To_ISVGSVGElement);

   procedure PutRef_x
     (This : ISVGSVGElement_Type;
      p    : Pointer_To_ISVGAnimatedLength);

   function Get_x
     (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGAnimatedLength;

   procedure PutRef_y
     (This : ISVGSVGElement_Type;
      p    : Pointer_To_ISVGAnimatedLength);

   function Get_y
     (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGAnimatedLength;

   procedure PutRef_width
     (This : ISVGSVGElement_Type;
      p    : Pointer_To_ISVGAnimatedLength);

   function Get_width
     (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGAnimatedLength;

   procedure PutRef_height
     (This : ISVGSVGElement_Type;
      p    : Pointer_To_ISVGAnimatedLength);

   function Get_height
     (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGAnimatedLength;

   procedure Put_contentScriptType
     (This : ISVGSVGElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_contentScriptType
     (This : ISVGSVGElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_contentStyleType
     (This : ISVGSVGElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_contentStyleType
     (This : ISVGSVGElement_Type)
     return GNATCOM.Types.BSTR;

   procedure PutRef_viewport
     (This : ISVGSVGElement_Type;
      p    : Pointer_To_ISVGRect);

   function Get_viewport
     (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGRect;

   procedure Put_pixelUnitToMillimeterX
     (This : ISVGSVGElement_Type;
      p    : Interfaces.C.C_float);

   function Get_pixelUnitToMillimeterX
     (This : ISVGSVGElement_Type)
     return Interfaces.C.C_float;

   procedure Put_pixelUnitToMillimeterY
     (This : ISVGSVGElement_Type;
      p    : Interfaces.C.C_float);

   function Get_pixelUnitToMillimeterY
     (This : ISVGSVGElement_Type)
     return Interfaces.C.C_float;

   procedure Put_screenPixelToMillimeterX
     (This : ISVGSVGElement_Type;
      p    : Interfaces.C.C_float);

   function Get_screenPixelToMillimeterX
     (This : ISVGSVGElement_Type)
     return Interfaces.C.C_float;

   procedure Put_screenPixelToMillimeterY
     (This : ISVGSVGElement_Type;
      p    : Interfaces.C.C_float);

   function Get_screenPixelToMillimeterY
     (This : ISVGSVGElement_Type)
     return Interfaces.C.C_float;

   procedure Put_useCurrentView
     (This : ISVGSVGElement_Type;
      p    : GNATCOM.Types.VARIANT_BOOL);

   function Get_useCurrentView
     (This : ISVGSVGElement_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure PutRef_currentView
     (This : ISVGSVGElement_Type;
      p    : Pointer_To_ISVGViewSpec);

   function Get_currentView
     (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGViewSpec;

   procedure Put_currentScale
     (This : ISVGSVGElement_Type;
      p    : Interfaces.C.C_float);

   function Get_currentScale
     (This : ISVGSVGElement_Type)
     return Interfaces.C.C_float;

   procedure PutRef_currentTranslate
     (This : ISVGSVGElement_Type;
      p    : Pointer_To_ISVGPoint);

   function Get_currentTranslate
     (This : ISVGSVGElement_Type)
     return Pointer_To_ISVGPoint;

   function suspendRedraw
     (This                : ISVGSVGElement_Type;
      maxWaitMilliseconds : Interfaces.C.unsigned_long)
     return Interfaces.C.unsigned_long;

   procedure unsuspendRedraw
     (This           : ISVGSVGElement_Type;
      suspendHandeID : Interfaces.C.unsigned_long);

   procedure unsuspendRedrawAll
     (This : ISVGSVGElement_Type);

   procedure forceRedraw
     (This : ISVGSVGElement_Type);

   procedure pauseAnimations
     (This : ISVGSVGElement_Type);

   procedure unpauseAnimations
     (This : ISVGSVGElement_Type);

   function animationsPaused
     (This    : ISVGSVGElement_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function getCurrentTime
     (This    : ISVGSVGElement_Type)
     return Interfaces.C.C_float;

   procedure setCurrentTime
     (This    : ISVGSVGElement_Type;
      seconds : Interfaces.C.C_float);

   function getIntersectionList
     (This             : ISVGSVGElement_Type;
      rect             : Pointer_To_ISVGRect;
      referenceElement : Pointer_To_ISVGElement)
     return GNATCOM.Types.VARIANT;

   function getEnclosureList
     (This             : ISVGSVGElement_Type;
      rect             : Pointer_To_ISVGRect;
      referenceElement : Pointer_To_ISVGElement)
     return GNATCOM.Types.VARIANT;

   function checkIntersection
     (This    : ISVGSVGElement_Type;
      element : Pointer_To_ISVGElement;
      rect    : Pointer_To_ISVGRect)
     return GNATCOM.Types.VARIANT_BOOL;

   function checkEnclosure
     (This    : ISVGSVGElement_Type;
      element : Pointer_To_ISVGElement;
      rect    : Pointer_To_ISVGRect)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure deselectAll
     (This : ISVGSVGElement_Type);

   function createSVGNumber
     (This    : ISVGSVGElement_Type)
     return Pointer_To_ISVGNumber;

   function createSVGLength
     (This    : ISVGSVGElement_Type)
     return Pointer_To_ISVGLength;

   function createSVGAngle
     (This    : ISVGSVGElement_Type)
     return Pointer_To_ISVGAngle;

   function createSVGPoint
     (This    : ISVGSVGElement_Type)
     return Pointer_To_ISVGPoint;

   function createSVGMatrix
     (This    : ISVGSVGElement_Type)
     return Pointer_To_ISVGMatrix;

   function createSVGRect
     (This    : ISVGSVGElement_Type)
     return Pointer_To_ISVGRect;

   function createSVGTransform
     (This    : ISVGSVGElement_Type)
     return Pointer_To_ISVGTransform;

   function createSVGTransformFromMatrix
     (This    : ISVGSVGElement_Type;
      matrix  : Pointer_To_ISVGMatrix)
     return Pointer_To_ISVGTransform;

   function getElementById
     (This      : ISVGSVGElement_Type;
      elementId : GNATCOM.Types.BSTR;
      Free      : Boolean := True)
     return Pointer_To_IHTMLElement;

end MSHTML.ISVGSVGElement_Interface;

