package body MSHTML.IHTMLWindow3_Object is

   function Get_screenLeft
     (This : IHTMLWindow3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLWindow3_Get_screenLeft);
   end Get_screenLeft;

   function Get_screenTop
     (This : IHTMLWindow3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLWindow3_Get_screenTop);
   end Get_screenTop;

   function attachEvent
     (This  : IHTMLWindow3_Type;
      event : GNATCOM.Types.VARIANT;
      pdisp : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLWindow3_attachEvent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pdisp,
          2 => event),
         Free);
   end attachEvent;

   procedure detachEvent
     (This  : IHTMLWindow3_Type;
      event : GNATCOM.Types.VARIANT;
      pdisp : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLWindow3_detachEvent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pdisp,
          2 => event),
         Free);
   end detachEvent;

   function setTimeout
     (This       : IHTMLWindow3_Type;
      expression : GNATCOM.Types.VARIANT;
      msec       : GNATCOM.Types.VARIANT;
      language   : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLWindow3_setTimeout,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => language,
          2 => msec,
          3 => expression),
         Free);
   end setTimeout;

   function setInterval
     (This       : IHTMLWindow3_Type;
      expression : GNATCOM.Types.VARIANT;
      msec       : GNATCOM.Types.VARIANT;
      language   : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLWindow3_setInterval,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => language,
          2 => msec,
          3 => expression),
         Free);
   end setInterval;

   procedure print
     (This : IHTMLWindow3_Type)
   is
   begin
      Invoke (This, IHTMLWindow3_print);
   end print;

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

   function Get_onbeforeprint
     (This : IHTMLWindow3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLWindow3_Get_onbeforeprint);
   end Get_onbeforeprint;

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

   function Get_onafterprint
     (This : IHTMLWindow3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLWindow3_Get_onafterprint);
   end Get_onafterprint;

   function Get_clipboardData
     (This : IHTMLWindow3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLWindow3_Get_clipboardData);
   end Get_clipboardData;

   function showModelessDialog
     (This     : IHTMLWindow3_Type;
      url      : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      varArgIn : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      options  : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLWindow3_showModelessDialog,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => options,
          2 => varArgIn,
          3 => url),
         Free);
   end showModelessDialog;

end MSHTML.IHTMLWindow3_Object;

