package body MSHTML.ITemplatePrinter2_Object is

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

   procedure stopDoc
     (This : ITemplatePrinter2_Type)
   is
   begin
      Invoke (This, ITemplatePrinter2_stopDoc);
   end stopDoc;

   procedure printBlankPage
     (This : ITemplatePrinter2_Type)
   is
   begin
      Invoke (This, ITemplatePrinter2_printBlankPage);
   end printBlankPage;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

end MSHTML.ITemplatePrinter2_Object;

