with GNATCOM.Dispinterface;

package MSHTML.IHTMLElement_Interface is

   type IHTMLElement_Type is
     new GNATCOM.Dispinterface.Dispinterface_Type with null record;

   procedure Initialize (This : in out IHTMLElement_Type);

   function Pointer (This : IHTMLElement_Type)
     return Pointer_To_IHTMLElement;

   procedure Attach (This    : in out IHTMLElement_Type;
                     Pointer : in     Pointer_To_IHTMLElement);

   procedure setAttribute
     (This             : IHTMLElement_Type;
      strAttributeName : GNATCOM.Types.BSTR;
      AttributeValue   : GNATCOM.Types.VARIANT;
      lFlags           : Interfaces.C.long;
      Free             : Boolean := True);

   function getAttribute
     (This             : IHTMLElement_Type;
      strAttributeName : GNATCOM.Types.BSTR;
      lFlags           : Interfaces.C.long;
      Free             : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function removeAttribute
     (This             : IHTMLElement_Type;
      strAttributeName : GNATCOM.Types.BSTR;
      lFlags           : Interfaces.C.long;
      Free             : Boolean := True)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure Put_className
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_className
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_id
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_id
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   function Get_tagName
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   function Get_parentElement
     (This : IHTMLElement_Type)
     return Pointer_To_IHTMLElement;

   function Get_style
     (This : IHTMLElement_Type)
     return Pointer_To_IHTMLStyle;

   procedure Put_onhelp
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onhelp
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onclick
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onclick
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_ondblclick
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondblclick
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onkeydown
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onkeydown
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onkeyup
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onkeyup
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onkeypress
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onkeypress
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onmouseout
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onmouseout
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onmouseover
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onmouseover
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onmousemove
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onmousemove
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onmousedown
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onmousedown
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onmouseup
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onmouseup
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   function Get_document
     (This : IHTMLElement_Type)
     return GNATCOM.Types.Pointer_To_IDispatch;

   procedure Put_title
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_title
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_language
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_language
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_onselectstart
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onselectstart
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure scrollIntoView
     (This        : IHTMLElement_Type;
      varargStart : GNATCOM.Types.VARIANT  := GNATCOM.Types.VARIANT_MISSING;
      Free        : Boolean := True);

   function contains
     (This     : IHTMLElement_Type;
      pChild   : Pointer_To_IHTMLElement)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_sourceIndex
     (This : IHTMLElement_Type)
     return Interfaces.C.long;

   function Get_recordNumber
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_lang
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_lang
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   function Get_offsetLeft
     (This : IHTMLElement_Type)
     return Interfaces.C.long;

   function Get_offsetTop
     (This : IHTMLElement_Type)
     return Interfaces.C.long;

   function Get_offsetWidth
     (This : IHTMLElement_Type)
     return Interfaces.C.long;

   function Get_offsetHeight
     (This : IHTMLElement_Type)
     return Interfaces.C.long;

   function Get_offsetParent
     (This : IHTMLElement_Type)
     return Pointer_To_IHTMLElement;

   procedure Put_innerHTML
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_innerHTML
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_innerText
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_innerText
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_outerHTML
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_outerHTML
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_outerText
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_outerText
     (This : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure insertAdjacentHTML
     (This  : IHTMLElement_Type;
      where : GNATCOM.Types.BSTR;
      html  : GNATCOM.Types.BSTR;
      Free  : Boolean := True);

   procedure insertAdjacentText
     (This  : IHTMLElement_Type;
      where : GNATCOM.Types.BSTR;
      text  : GNATCOM.Types.BSTR;
      Free  : Boolean := True);

   function Get_parentTextEdit
     (This : IHTMLElement_Type)
     return Pointer_To_IHTMLElement;

   function Get_isTextEdit
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure click
     (This : IHTMLElement_Type);

   function Get_filters
     (This : IHTMLElement_Type)
     return Pointer_To_IHTMLFiltersCollection;

   procedure Put_ondragstart
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondragstart
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   function toString
     (This   : IHTMLElement_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_onbeforeupdate
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onbeforeupdate
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onafterupdate
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onafterupdate
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onerrorupdate
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onerrorupdate
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onrowexit
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onrowexit
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onrowenter
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onrowenter
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_ondatasetchanged
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondatasetchanged
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_ondataavailable
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondataavailable
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_ondatasetcomplete
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondatasetcomplete
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onfilterchange
     (This : IHTMLElement_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onfilterchange
     (This : IHTMLElement_Type)
     return GNATCOM.Types.VARIANT;

   function Get_children
     (This : IHTMLElement_Type)
     return GNATCOM.Types.Pointer_To_IDispatch;

   function Get_all
     (This : IHTMLElement_Type)
     return GNATCOM.Types.Pointer_To_IDispatch;

end MSHTML.IHTMLElement_Interface;

