package body MSHTML.IHTMLAreasCollection_Object is

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

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

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

   function item
     (This  : IHTMLAreasCollection_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,
         IHTMLAreasCollection_item,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => index,
          2 => name),
         Free);
   end item;

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

   procedure add
     (This    : IHTMLAreasCollection_Type;
      element : GNATCOM.Types.VARIANT;
      before  : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLAreasCollection_add,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => before,
          2 => element),
         Free);
   end add;

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

end MSHTML.IHTMLAreasCollection_Object;

