with GNATCOM.Dispinterface;

package MSHTML.ITemplatePrinter3_Object is

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

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

   procedure stopDoc
     (This : ITemplatePrinter3_Type);

   procedure printBlankPage
     (This : ITemplatePrinter3_Type);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   procedure Put_selectionEnabled
     (This : ITemplatePrinter3_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_selectionEnabled
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_frameActiveEnabled
     (This : ITemplatePrinter3_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_frameActiveEnabled
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_orientation
     (This : ITemplatePrinter3_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_orientation
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_usePrinterCopyCollate
     (This : ITemplatePrinter3_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_usePrinterCopyCollate
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT;

   function deviceSupports
     (This         : ITemplatePrinter3_Type;
      bstrProperty : GNATCOM.Types.VARIANT;
      Free         : Boolean := True)
     return GNATCOM.Types.VARIANT;

   procedure Put_headerFooterFont
     (This : ITemplatePrinter3_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_headerFooterFont
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT;

   function getPageMarginTop
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getPageMarginRight
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getPageMarginBottom
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getPageMarginLeft
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getPageMarginTopImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getPageMarginRightImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getPageMarginBottomImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getPageMarginLeftImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

end MSHTML.ITemplatePrinter3_Object;

