package body MSHTML.IHTMLElement_Object is

   procedure setAttribute
     (This             : IHTMLElement_Type;
      strAttributeName : GNATCOM.Types.VARIANT;
      AttributeValue   : GNATCOM.Types.VARIANT;
      lFlags           : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free             : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement_setAttribute,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => lFlags,
          2 => AttributeValue,
          3 => strAttributeName),
         Free);
   end setAttribute;

   function getAttribute
     (This             : IHTMLElement_Type;
      strAttributeName : GNATCOM.Types.VARIANT;
      lFlags           : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free             : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement_getAttribute,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => lFlags,
          2 => strAttributeName),
         Free);
   end getAttribute;

   function removeAttribute
     (This             : IHTMLElement_Type;
      strAttributeName : GNATCOM.Types.VARIANT;
      lFlags           : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free             : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement_removeAttribute,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => lFlags,
          2 => strAttributeName),
         Free);
   end removeAttribute;

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

   function Get_className
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_className);
   end Get_className;

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

   function Get_id
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_id);
   end Get_id;

   function Get_tagName
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_tagName);
   end Get_tagName;

   function Get_parentElement
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_parentElement);
   end Get_parentElement;

   function Get_style
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_style);
   end Get_style;

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

   function Get_onhelp
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onhelp);
   end Get_onhelp;

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

   function Get_onclick
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onclick);
   end Get_onclick;

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

   function Get_ondblclick
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_ondblclick);
   end Get_ondblclick;

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

   function Get_onkeydown
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onkeydown);
   end Get_onkeydown;

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

   function Get_onkeyup
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onkeyup);
   end Get_onkeyup;

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

   function Get_onkeypress
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onkeypress);
   end Get_onkeypress;

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

   function Get_onmouseout
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onmouseout);
   end Get_onmouseout;

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

   function Get_onmouseover
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onmouseover);
   end Get_onmouseover;

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

   function Get_onmousemove
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onmousemove);
   end Get_onmousemove;

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

   function Get_onmousedown
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onmousedown);
   end Get_onmousedown;

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

   function Get_onmouseup
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onmouseup);
   end Get_onmouseup;

   function Get_document
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_document);
   end Get_document;

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

   function Get_title
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_title);
   end Get_title;

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

   function Get_language
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_language);
   end Get_language;

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

   function Get_onselectstart
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onselectstart);
   end Get_onselectstart;

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

   function contains
     (This   : IHTMLElement_Type;
      pChild : GNATCOM.Types.VARIANT;
      Free   : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement_contains,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pChild),
         Free);
   end contains;

   function Get_sourceIndex
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_sourceIndex);
   end Get_sourceIndex;

   function Get_recordNumber
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_recordNumber);
   end Get_recordNumber;

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

   function Get_lang
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_lang);
   end Get_lang;

   function Get_offsetLeft
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_offsetLeft);
   end Get_offsetLeft;

   function Get_offsetTop
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_offsetTop);
   end Get_offsetTop;

   function Get_offsetWidth
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_offsetWidth);
   end Get_offsetWidth;

   function Get_offsetHeight
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_offsetHeight);
   end Get_offsetHeight;

   function Get_offsetParent
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_offsetParent);
   end Get_offsetParent;

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

   function Get_innerHTML
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_innerHTML);
   end Get_innerHTML;

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

   function Get_innerText
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_innerText);
   end Get_innerText;

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

   function Get_outerHTML
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_outerHTML);
   end Get_outerHTML;

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

   function Get_outerText
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_outerText);
   end Get_outerText;

   procedure insertAdjacentHTML
     (This  : IHTMLElement_Type;
      where : GNATCOM.Types.VARIANT;
      html  : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement_insertAdjacentHTML,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => html,
          2 => where),
         Free);
   end insertAdjacentHTML;

   procedure insertAdjacentText
     (This  : IHTMLElement_Type;
      where : GNATCOM.Types.VARIANT;
      text  : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement_insertAdjacentText,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => text,
          2 => where),
         Free);
   end insertAdjacentText;

   function Get_parentTextEdit
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_parentTextEdit);
   end Get_parentTextEdit;

   function Get_isTextEdit
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_isTextEdit);
   end Get_isTextEdit;

   procedure click
     (This : IHTMLElement_Type)
   is
   begin
      Invoke (This, IHTMLElement_click);
   end click;

   function Get_filters
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_filters);
   end Get_filters;

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

   function Get_ondragstart
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_ondragstart);
   end Get_ondragstart;

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

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

   function Get_onbeforeupdate
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onbeforeupdate);
   end Get_onbeforeupdate;

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

   function Get_onafterupdate
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onafterupdate);
   end Get_onafterupdate;

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

   function Get_onerrorupdate
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onerrorupdate);
   end Get_onerrorupdate;

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

   function Get_onrowexit
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onrowexit);
   end Get_onrowexit;

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

   function Get_onrowenter
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onrowenter);
   end Get_onrowenter;

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

   function Get_ondatasetchanged
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_ondatasetchanged);
   end Get_ondatasetchanged;

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

   function Get_ondataavailable
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_ondataavailable);
   end Get_ondataavailable;

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

   function Get_ondatasetcomplete
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_ondatasetcomplete);
   end Get_ondatasetcomplete;

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

   function Get_onfilterchange
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_onfilterchange);
   end Get_onfilterchange;

   function Get_children
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_children);
   end Get_children;

   function Get_all
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement_Get_all);
   end Get_all;

end MSHTML.IHTMLElement_Object;

