package body MSHTML.ITemplatePrinter3_Object is

   function startDoc
     (This      : ITemplatePrinter3_Type;
      bstrTitle : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_startDoc,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrTitle),
         Free);
   end startDoc;

   procedure stopDoc
     (This : ITemplatePrinter3_Type)
   is
   begin
      Invoke (This, ITemplatePrinter3_stopDoc);
   end stopDoc;

   procedure printBlankPage
     (This : ITemplatePrinter3_Type)
   is
   begin
      Invoke (This, ITemplatePrinter3_printBlankPage);
   end printBlankPage;

   procedure printPage
     (This      : ITemplatePrinter3_Type;
      pElemDisp : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
   is
   begin
      Invoke
        (This,
         ITemplatePrinter3_printPage,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pElemDisp),
         Free);
   end printPage;

   function ensurePrintDialogDefaults
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, ITemplatePrinter3_ensurePrintDialogDefaults);
   end ensurePrintDialogDefaults;

   function showPrintDialog
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, ITemplatePrinter3_showPrintDialog);
   end showPrintDialog;

   function showPageSetupDialog
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, ITemplatePrinter3_showPageSetupDialog);
   end showPageSetupDialog;

   function printNonNative
     (This    : ITemplatePrinter3_Type;
      pMarkup : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_printNonNative,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pMarkup),
         Free);
   end printNonNative;

   procedure printNonNativeFrames
     (This         : ITemplatePrinter3_Type;
      pMarkup      : GNATCOM.Types.VARIANT;
      fActiveFrame : GNATCOM.Types.VARIANT;
      Free         : Boolean := True)
   is
   begin
      Invoke
        (This,
         ITemplatePrinter3_printNonNativeFrames,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fActiveFrame,
          2 => pMarkup),
         Free);
   end printNonNativeFrames;

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

   function Get_framesetDocument
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_framesetDocument);
   end Get_framesetDocument;

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

   function Get_frameActive
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_frameActive);
   end Get_frameActive;

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

   function Get_frameAsShown
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_frameAsShown);
   end Get_frameAsShown;

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

   function Get_selection
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_selection);
   end Get_selection;

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

   function Get_selectedPages
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_selectedPages);
   end Get_selectedPages;

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

   function Get_currentPage
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_currentPage);
   end Get_currentPage;

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

   function Get_currentPageAvail
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_currentPageAvail);
   end Get_currentPageAvail;

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

   function Get_collate
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_collate);
   end Get_collate;

   function Get_duplex
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_duplex);
   end Get_duplex;

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

   function Get_copies
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_copies);
   end Get_copies;

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

   function Get_pageFrom
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_pageFrom);
   end Get_pageFrom;

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

   function Get_pageTo
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_pageTo);
   end Get_pageTo;

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

   function Get_tableOfLinks
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_tableOfLinks);
   end Get_tableOfLinks;

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

   function Get_allLinkedDocuments
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_allLinkedDocuments);
   end Get_allLinkedDocuments;

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

   function Get_header
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_header);
   end Get_header;

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

   function Get_footer
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_footer);
   end Get_footer;

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

   function Get_marginLeft
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_marginLeft);
   end Get_marginLeft;

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

   function Get_marginRight
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_marginRight);
   end Get_marginRight;

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

   function Get_marginTop
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_marginTop);
   end Get_marginTop;

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

   function Get_marginBottom
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_marginBottom);
   end Get_marginBottom;

   function Get_pageWidth
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_pageWidth);
   end Get_pageWidth;

   function Get_pageHeight
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_pageHeight);
   end Get_pageHeight;

   function Get_unprintableLeft
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_unprintableLeft);
   end Get_unprintableLeft;

   function Get_unprintableTop
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_unprintableTop);
   end Get_unprintableTop;

   function Get_unprintableRight
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_unprintableRight);
   end Get_unprintableRight;

   function Get_unprintableBottom
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_unprintableBottom);
   end Get_unprintableBottom;

   procedure updatePageStatus
     (This : ITemplatePrinter3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         ITemplatePrinter3_updatePageStatus,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => p),
         Free);
   end updatePageStatus;

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

   function Get_selectionEnabled
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_selectionEnabled);
   end Get_selectionEnabled;

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

   function Get_frameActiveEnabled
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_frameActiveEnabled);
   end Get_frameActiveEnabled;

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

   function Get_orientation
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_orientation);
   end Get_orientation;

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

   function Get_usePrinterCopyCollate
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_usePrinterCopyCollate);
   end Get_usePrinterCopyCollate;

   function deviceSupports
     (This         : ITemplatePrinter3_Type;
      bstrProperty : GNATCOM.Types.VARIANT;
      Free         : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_deviceSupports,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrProperty),
         Free);
   end deviceSupports;

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

   function Get_headerFooterFont
     (This : ITemplatePrinter3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, ITemplatePrinter3_Get_headerFooterFont);
   end Get_headerFooterFont;

   function getPageMarginTop
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginTop,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageHeight,
          2 => pageWidth,
          3 => pageRule),
         Free);
   end getPageMarginTop;

   function getPageMarginRight
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginRight,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageHeight,
          2 => pageWidth,
          3 => pageRule),
         Free);
   end getPageMarginRight;

   function getPageMarginBottom
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginBottom,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageHeight,
          2 => pageWidth,
          3 => pageRule),
         Free);
   end getPageMarginBottom;

   function getPageMarginLeft
     (This       : ITemplatePrinter3_Type;
      pageRule   : GNATCOM.Types.VARIANT;
      pageWidth  : GNATCOM.Types.VARIANT;
      pageHeight : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginLeft,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageHeight,
          2 => pageWidth,
          3 => pageRule),
         Free);
   end getPageMarginLeft;

   function getPageMarginTopImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginTopImportant,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageRule),
         Free);
   end getPageMarginTopImportant;

   function getPageMarginRightImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginRightImportant,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageRule),
         Free);
   end getPageMarginRightImportant;

   function getPageMarginBottomImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginBottomImportant,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageRule),
         Free);
   end getPageMarginBottomImportant;

   function getPageMarginLeftImportant
     (This     : ITemplatePrinter3_Type;
      pageRule : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         ITemplatePrinter3_getPageMarginLeftImportant,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pageRule),
         Free);
   end getPageMarginLeftImportant;

end MSHTML.ITemplatePrinter3_Object;

