package body MSHTML.IHTMLDOMRange_Object is

   function Get_startContainer
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMRange_Get_startContainer);
   end Get_startContainer;

   function Get_startOffset
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMRange_Get_startOffset);
   end Get_startOffset;

   function Get_endContainer
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMRange_Get_endContainer);
   end Get_endContainer;

   function Get_endOffset
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMRange_Get_endOffset);
   end Get_endOffset;

   function Get_collapsed
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMRange_Get_collapsed);
   end Get_collapsed;

   function Get_commonAncestorContainer
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMRange_Get_commonAncestorContainer);
   end Get_commonAncestorContainer;

   procedure setStart
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      offset  : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_setStart,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => offset,
          2 => refNode),
         Free);
   end setStart;

   procedure setEnd
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      offset  : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_setEnd,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => offset,
          2 => refNode),
         Free);
   end setEnd;

   procedure setStartBefore
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_setStartBefore,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => refNode),
         Free);
   end setStartBefore;

   procedure setStartAfter
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_setStartAfter,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => refNode),
         Free);
   end setStartAfter;

   procedure setEndBefore
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_setEndBefore,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => refNode),
         Free);
   end setEndBefore;

   procedure setEndAfter
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_setEndAfter,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => refNode),
         Free);
   end setEndAfter;

   procedure collapse
     (This    : IHTMLDOMRange_Type;
      toStart : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_collapse,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => toStart),
         Free);
   end collapse;

   procedure selectNode
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_selectNode,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => refNode),
         Free);
   end selectNode;

   procedure selectNodeContents
     (This    : IHTMLDOMRange_Type;
      refNode : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_selectNodeContents,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => refNode),
         Free);
   end selectNodeContents;

   function compareBoundaryPoints
     (This        : IHTMLDOMRange_Type;
      how         : GNATCOM.Types.VARIANT;
      sourceRange : GNATCOM.Types.VARIANT;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMRange_compareBoundaryPoints,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => sourceRange,
          2 => how),
         Free);
   end compareBoundaryPoints;

   procedure deleteContents
     (This : IHTMLDOMRange_Type)
   is
   begin
      Invoke (This, IHTMLDOMRange_deleteContents);
   end deleteContents;

   function extractContents
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLDOMRange_extractContents);
   end extractContents;

   function cloneContents
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLDOMRange_cloneContents);
   end cloneContents;

   procedure insertNode
     (This    : IHTMLDOMRange_Type;
      newNode : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_insertNode,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => newNode),
         Free);
   end insertNode;

   procedure surroundContents
     (This      : IHTMLDOMRange_Type;
      newParent : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLDOMRange_surroundContents,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => newParent),
         Free);
   end surroundContents;

   function cloneRange
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLDOMRange_cloneRange);
   end cloneRange;

   function toString
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLDOMRange_toString);
   end toString;

   procedure Detach
     (This : IHTMLDOMRange_Type)
   is
   begin
      Invoke (This, IHTMLDOMRange_Detach);
   end Detach;

   function getClientRects
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLDOMRange_getClientRects);
   end getClientRects;

   function getBoundingClientRect
     (This : IHTMLDOMRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLDOMRange_getBoundingClientRect);
   end getBoundingClientRect;

end MSHTML.IHTMLDOMRange_Object;

