with GNATCOM.Dispinterface;

package MSHTML.IHTMLWindow3_Interface is

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

   procedure Initialize (This : in out IHTMLWindow3_Type);

   function Pointer (This : IHTMLWindow3_Type)
     return Pointer_To_IHTMLWindow3;

   procedure Attach (This    : in out IHTMLWindow3_Type;
                     Pointer : in     Pointer_To_IHTMLWindow3);

   function Get_screenLeft
     (This : IHTMLWindow3_Type)
     return Interfaces.C.long;

   function Get_screenTop
     (This : IHTMLWindow3_Type)
     return Interfaces.C.long;

   function attachEvent
     (This     : IHTMLWindow3_Type;
      event    : GNATCOM.Types.BSTR;
      pdisp    : GNATCOM.Types.Pointer_To_IDispatch;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure detachEvent
     (This  : IHTMLWindow3_Type;
      event : GNATCOM.Types.BSTR;
      pdisp : GNATCOM.Types.Pointer_To_IDispatch;
      Free  : Boolean := True);

   function setTimeout
     (This       : IHTMLWindow3_Type;
      expression : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      msec       : Interfaces.C.long;
      language   : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING)
     return Interfaces.C.long;

   function setInterval
     (This       : IHTMLWindow3_Type;
      expression : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      msec       : Interfaces.C.long;
      language   : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING)
     return Interfaces.C.long;

   procedure print
     (This : IHTMLWindow3_Type);

   procedure Put_onbeforeprint
     (This : IHTMLWindow3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onbeforeprint
     (This : IHTMLWindow3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onafterprint
     (This : IHTMLWindow3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onafterprint
     (This : IHTMLWindow3_Type)
     return GNATCOM.Types.VARIANT;

   function Get_clipboardData
     (This : IHTMLWindow3_Type)
     return Pointer_To_IHTMLDataTransfer;

   function showModelessDialog
     (This     : IHTMLWindow3_Type;
      url      : GNATCOM.Types.BSTR;
      varArgIn : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      options  : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      Free     : Boolean := True)
     return Pointer_To_IHTMLWindow2;

end MSHTML.IHTMLWindow3_Interface;

