with GNATCOM.Dispinterface;

package MSHTML.IHTMLDOMRange_Interface is

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

   procedure Initialize (This : in out IHTMLDOMRange_Type);

   function Pointer (This : IHTMLDOMRange_Type)
     return Pointer_To_IHTMLDOMRange;

   procedure Attach (This    : in out IHTMLDOMRange_Type;
                     Pointer : in     Pointer_To_IHTMLDOMRange);

   function Get_startContainer
     (This : IHTMLDOMRange_Type)
     return Pointer_To_IHTMLDOMNode;

   function Get_startOffset
     (This : IHTMLDOMRange_Type)
     return Interfaces.C.long;

   function Get_endContainer
     (This : IHTMLDOMRange_Type)
     return Pointer_To_IHTMLDOMNode;

   function Get_endOffset
     (This : IHTMLDOMRange_Type)
     return Interfaces.C.long;

   function Get_collapsed
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_commonAncestorContainer
     (This : IHTMLDOMRange_Type)
     return Pointer_To_IHTMLDOMNode;

   procedure setStart
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch;
      offset  : Interfaces.C.long);

   procedure setEnd
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch;
      offset  : Interfaces.C.long);

   procedure setStartBefore
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch);

   procedure setStartAfter
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch);

   procedure setEndBefore
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch);

   procedure setEndAfter
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch);

   procedure collapse
     (This    : IHTMLDOMRange_Type;
      toStart : GNATCOM.Types.VARIANT_BOOL);

   procedure selectNode
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch);

   procedure selectNodeContents
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.Pointer_To_IDispatch);

   function compareBoundaryPoints
     (This          : IHTMLDOMRange_Type;
      how           : Interfaces.C.short;
      sourceRange   : GNATCOM.Types.Pointer_To_IDispatch)
     return Interfaces.C.long;

   procedure deleteContents
     (This : IHTMLDOMRange_Type);

   function extractContents
     (This               : IHTMLDOMRange_Type)
     return GNATCOM.Types.Pointer_To_IDispatch;

   function cloneContents
     (This               : IHTMLDOMRange_Type)
     return GNATCOM.Types.Pointer_To_IDispatch;

   procedure insertNode
     (This    : IHTMLDOMRange_Type;
      newNode : GNATCOM.Types.Pointer_To_IDispatch);

   procedure surroundContents
     (This      : IHTMLDOMRange_Type;
      newParent : GNATCOM.Types.Pointer_To_IDispatch);

   function cloneRange
     (This          : IHTMLDOMRange_Type)
     return Pointer_To_IHTMLDOMRange;

   function toString
     (This         : IHTMLDOMRange_Type)
     return GNATCOM.Types.BSTR;

   procedure Detach
     (This : IHTMLDOMRange_Type);

   function getClientRects
     (This      : IHTMLDOMRange_Type)
     return Pointer_To_IHTMLRectCollection;

   function getBoundingClientRect
     (This   : IHTMLDOMRange_Type)
     return Pointer_To_IHTMLRect;

end MSHTML.IHTMLDOMRange_Interface;

