with GNATCOM.Dispinterface;

package MSHTML.ITemplatePrinter_Object is

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

   function startDoc
     (This      : ITemplatePrinter_Type;
      bstrTitle : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
     return GNATCOM.Types.VARIANT;

   procedure stopDoc
     (This : ITemplatePrinter_Type);

   procedure printBlankPage
     (This : ITemplatePrinter_Type);

   procedure printPage
     (This      : ITemplatePrinter_Type;
      pElemDisp : GNATCOM.Types.VARIANT;
      Free      : Boolean := True);

   function ensurePrintDialogDefaults
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function showPrintDialog
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function showPageSetupDialog
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function printNonNative
     (This    : ITemplatePrinter_Type;
      pMarkup : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
     return GNATCOM.Types.VARIANT;

   procedure printNonNativeFrames
     (This         : ITemplatePrinter_Type;
      pMarkup      : GNATCOM.Types.VARIANT;
      fActiveFrame : GNATCOM.Types.VARIANT;
      Free         : Boolean := True);

   procedure Put_framesetDocument
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_framesetDocument
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_frameActive
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_frameActive
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_frameAsShown
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_frameAsShown
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_selection
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_selection
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_selectedPages
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_selectedPages
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_currentPage
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_currentPage
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_currentPageAvail
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_currentPageAvail
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_collate
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_collate
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function Get_duplex
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_copies
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_copies
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_pageFrom
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_pageFrom
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_pageTo
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_pageTo
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_tableOfLinks
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_tableOfLinks
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_allLinkedDocuments
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_allLinkedDocuments
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_header
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_header
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_footer
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_footer
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_marginLeft
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_marginLeft
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_marginRight
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_marginRight
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_marginTop
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_marginTop
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_marginBottom
     (This : ITemplatePrinter_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_marginBottom
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function Get_pageWidth
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function Get_pageHeight
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function Get_unprintableLeft
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function Get_unprintableTop
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function Get_unprintableRight
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   function Get_unprintableBottom
     (This : ITemplatePrinter_Type)
     return GNATCOM.Types.VARIANT;

   procedure updatePageStatus
     (This : ITemplatePrinter_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

end MSHTML.ITemplatePrinter_Object;

