package body MSHTML.IHTMLControlRange_Object is

   procedure uselect
     (This : IHTMLControlRange_Type)
   is
   begin
      Invoke (This, IHTMLControlRange_uselect);
   end uselect;

   procedure add
     (This : IHTMLControlRange_Type;
      item : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLControlRange_add,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => item),
         Free);
   end add;

   procedure remove
     (This  : IHTMLControlRange_Type;
      index : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLControlRange_remove,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => index),
         Free);
   end remove;

   function item
     (This  : IHTMLControlRange_Type;
      index : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_item,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => index),
         Free);
   end item;

   procedure scrollIntoView
     (This        : IHTMLControlRange_Type;
      varargStart : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free        : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLControlRange_scrollIntoView,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => varargStart),
         Free);
   end scrollIntoView;

   function queryCommandSupported
     (This  : IHTMLControlRange_Type;
      cmdID : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_queryCommandSupported,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cmdID),
         Free);
   end queryCommandSupported;

   function queryCommandEnabled
     (This  : IHTMLControlRange_Type;
      cmdID : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_queryCommandEnabled,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cmdID),
         Free);
   end queryCommandEnabled;

   function queryCommandState
     (This  : IHTMLControlRange_Type;
      cmdID : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_queryCommandState,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cmdID),
         Free);
   end queryCommandState;

   function queryCommandIndeterm
     (This  : IHTMLControlRange_Type;
      cmdID : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_queryCommandIndeterm,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cmdID),
         Free);
   end queryCommandIndeterm;

   function queryCommandText
     (This  : IHTMLControlRange_Type;
      cmdID : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_queryCommandText,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cmdID),
         Free);
   end queryCommandText;

   function queryCommandValue
     (This  : IHTMLControlRange_Type;
      cmdID : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_queryCommandValue,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cmdID),
         Free);
   end queryCommandValue;

   function execCommand
     (This   : IHTMLControlRange_Type;
      cmdID  : GNATCOM.Types.VARIANT;
      showUI : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      value  : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free   : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_execCommand,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => value,
          2 => showUI,
          3 => cmdID),
         Free);
   end execCommand;

   function execCommandShowHelp
     (This  : IHTMLControlRange_Type;
      cmdID : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLControlRange_execCommandShowHelp,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cmdID),
         Free);
   end execCommandShowHelp;

   function commonParentElement
     (This : IHTMLControlRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLControlRange_commonParentElement);
   end commonParentElement;

   function Get_length
     (This : IHTMLControlRange_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLControlRange_Get_length);
   end Get_length;

end MSHTML.IHTMLControlRange_Object;

