with GNATCOM.Dispinterface;

package MSHTML.IHTMLElement4_Interface is

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

   procedure Initialize (This : in out IHTMLElement4_Type);

   function Pointer (This : IHTMLElement4_Type)
     return Pointer_To_IHTMLElement4;

   procedure Attach (This    : in out IHTMLElement4_Type;
                     Pointer : in     Pointer_To_IHTMLElement4);

   procedure Put_onmousewheel
     (This : IHTMLElement4_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onmousewheel
     (This : IHTMLElement4_Type)
     return GNATCOM.Types.VARIANT;

   procedure normalize
     (This : IHTMLElement4_Type);

   function getAttributeNode
     (This        : IHTMLElement4_Type;
      bstrName    : GNATCOM.Types.BSTR;
      Free        : Boolean := True)
     return Pointer_To_IHTMLDOMAttribute;

   function setAttributeNode
     (This           : IHTMLElement4_Type;
      pattr          : Pointer_To_IHTMLDOMAttribute)
     return Pointer_To_IHTMLDOMAttribute;

   function removeAttributeNode
     (This           : IHTMLElement4_Type;
      pattr          : Pointer_To_IHTMLDOMAttribute)
     return Pointer_To_IHTMLDOMAttribute;

   procedure Put_onbeforeactivate
     (This : IHTMLElement4_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onbeforeactivate
     (This : IHTMLElement4_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onfocusin
     (This : IHTMLElement4_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onfocusin
     (This : IHTMLElement4_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onfocusout
     (This : IHTMLElement4_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onfocusout
     (This : IHTMLElement4_Type)
     return GNATCOM.Types.VARIANT;

end MSHTML.IHTMLElement4_Interface;

