package body MSHTML.IHTMLElementCollection_Object is

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

   procedure Put_length
     (This : IHTMLElementCollection_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         IHTMLElementCollection_Put_length,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_length;

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

   function Getu_newEnum
     (This : IHTMLElementCollection_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElementCollection_Getu_newEnum);
   end Getu_newEnum;

   function item
     (This  : IHTMLElementCollection_Type;
      name  : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      index : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElementCollection_item,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => index,
          2 => name),
         Free);
   end item;

   function tags
     (This    : IHTMLElementCollection_Type;
      tagName : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElementCollection_tags,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => tagName),
         Free);
   end tags;

end MSHTML.IHTMLElementCollection_Object;

