with GNATCOM.Events.Event_Object;
with GNATCOM.Create.COM_Interface;
with GNATCOM.IInterface;

package MSHTML.HTMLWindowEvents2_Events is

   type HTMLWindowEvents2_Event is
     new GNATCOM.Events.Event_Object.Event_Type with null record;

   function Create (From : in GNATCOM.Events.Event_Object.Event_Pointer)
     return GNATCOM.Create.COM_Interface.Pointer_To_COM_Interface_Type;

   procedure Set_Events
     (This            : in out GNATCOM.Events.IConnectionPoint_Type;
      For_Object      : in     GNATCOM.IInterface.Interface_Type'Class;
      Event_Interface :
        access GNATCOM.Create.COM_Interface.COM_Interface_Type;
      Free            : Boolean := True);

   procedure onload
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onunload
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onhelp
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onfocus
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onblur
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onerror
     (This        : HTMLWindowEvents2_Event;
      description : GNATCOM.Types.VARIANT;
      url         : GNATCOM.Types.VARIANT;
      line        : GNATCOM.Types.VARIANT);

   procedure onresize
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onscroll
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onbeforeunload
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onbeforeprint
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

   procedure onafterprint
     (This    : HTMLWindowEvents2_Event;
      pEvtObj : GNATCOM.Types.VARIANT);

end MSHTML.HTMLWindowEvents2_Events;

