Printing.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:24k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       Printing.h
  3.  
  4.      Contains:   Print Manager Interfaces.
  5.  
  6.      Version:    Technology: System 7.5
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1985-2001 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:      For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __PRINTING__
  18. #define __PRINTING__
  19. #ifndef __MACERRORS__
  20. #include "MacErrors.h"
  21. #endif
  22. #ifndef __QUICKDRAW__
  23. #include "Quickdraw.h"
  24. #endif
  25. #ifndef __DIALOGS__
  26. #include "Dialogs.h"
  27. #endif
  28. #if PRAGMA_ONCE
  29. #pragma once
  30. #endif
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34. #if PRAGMA_IMPORT
  35. #pragma import on
  36. #endif
  37. #if PRAGMA_STRUCT_ALIGN
  38.     #pragma options align=mac68k
  39. #elif PRAGMA_STRUCT_PACKPUSH
  40.     #pragma pack(push, 2)
  41. #elif PRAGMA_STRUCT_PACK
  42.     #pragma pack(2)
  43. #endif
  44. enum {
  45.     kFirstPageMin               = 1,                            /* min value for first page */
  46.     kLastPageMax                = 32767                         /* max value for last page */
  47. };
  48. enum {
  49.     iPFMaxPgs                   = 128,
  50.     iPrPgFract                  = 120,                          /*Page scale factor. ptPgSize (below) is in units of 1/iPrPgFract*/
  51.     iPrPgFst                    = 1,                            /*Page range constants*/
  52.     iPrPgMax                    = 9999,
  53.     iPrRelease                  = 3,                            /*Current version number of the code.*/
  54.     iPrSavPFil                  = -1,
  55.     iPrAbort                    = 0x0080,
  56.     iPrDevCtl                   = 7,                            /*The PrDevCtl Proc's ctl number*/
  57.     lPrReset                    = 0x00010000,                   /*The PrDevCtl Proc's CParam for reset*/
  58.     lPrLineFeed                 = 0x00030000,
  59.     lPrLFStd                    = 0x0003FFFF,                   /*The PrDevCtl Proc's CParam for std paper advance*/
  60.     lPrLFSixth                  = 0x0003FFFF,
  61.     lPrPageEnd                  = 0x00020000,                   /*The PrDevCtl Proc's CParam for end page*/
  62.     lPrDocOpen                  = 0x00010000,
  63.     lPrPageOpen                 = 0x00040000,
  64.     lPrPageClose                = 0x00020000,
  65.     lPrDocClose                 = 0x00050000,
  66.     iFMgrCtl                    = 8,                            /*The FMgr's Tail-hook Proc's ctl number*/
  67.     iMscCtl                     = 9,                            /*The FMgr's Tail-hook Proc's ctl number*/
  68.     iPvtCtl                     = 10                            /*The FMgr's Tail-hook Proc's ctl number*/
  69. };
  70. #define sPrDrvr ".Print"
  71. /*  Error Codes moved to Errors.(hap) */
  72. enum {
  73.     pPrGlobals                  = 0x00000944,                   /*The PrVars lo mem area:*/
  74.     bDraftLoop                  = 0,
  75.     bSpoolLoop                  = 1,
  76.     bUser1Loop                  = 2,
  77.     bUser2Loop                  = 3,
  78.     fNewRunBit                  = 2,
  79.     fHiResOK                    = 3,
  80.     fWeOpenedRF                 = 4,                            /*Driver constants */
  81.     iPrBitsCtl                  = 4,
  82.     lScreenBits                 = 0,
  83.     lPaintBits                  = 1,
  84.     lHiScreenBits               = 0x00000002,                   /*The Bitmap Print Proc's Screen Bitmap param*/
  85.     lHiPaintBits                = 0x00000003,                   /*The Bitmap Print Proc's Paint [sq pix] param*/
  86.     iPrIOCtl                    = 5,
  87.     iPrEvtCtl                   = 6,                            /*The PrEvent Proc's ctl number*/
  88.     lPrEvtAll                   = 0x0002FFFD,                   /*The PrEvent Proc's CParam for the entire screen*/
  89.     lPrEvtTop                   = 0x0001FFFD,                   /*The PrEvent Proc's CParam for the top folder*/
  90.     iPrDrvrRef                  = -3
  91. };
  92. enum {
  93.     getRslDataOp                = 4,
  94.     setRslOp                    = 5,
  95.     draftBitsOp                 = 6,
  96.     noDraftBitsOp               = 7,
  97.     getRotnOp                   = 8,
  98.     NoSuchRsl                   = 1,
  99.     OpNotImpl                   = 2,                            /*the driver doesn't support this opcode*/
  100.     RgType1                     = 1
  101. };
  102. enum {
  103.     feedCut                     = 0,
  104.     feedFanfold                 = 1,
  105.     feedMechCut                 = 2,
  106.     feedOther                   = 3
  107. };
  108. typedef SInt8                           TFeed;
  109. enum {
  110.     scanTB                      = 0,
  111.     scanBT                      = 1,
  112.     scanLR                      = 2,
  113.     scanRL                      = 3
  114. };
  115. typedef SInt8                           TScan;
  116. /* A Rect Ptr */
  117. typedef Rect *                          TPRect;
  118. typedef CALLBACK_API( void , PrIdleProcPtr )(void );
  119. typedef CALLBACK_API( void , PItemProcPtr )(DialogPtr theDialog, short item);
  120. typedef STACK_UPP_TYPE(PrIdleProcPtr)                           PrIdleUPP;
  121. typedef STACK_UPP_TYPE(PItemProcPtr)                            PItemUPP;
  122. #if OPAQUE_UPP_TYPES
  123. #if CALL_NOT_IN_CARBON
  124.     EXTERN_API(PrIdleUPP)
  125.     NewPrIdleUPP                   (PrIdleProcPtr           userRoutine);
  126.     EXTERN_API(PItemUPP)
  127.     NewPItemUPP                    (PItemProcPtr            userRoutine);
  128.     EXTERN_API(void)
  129.     DisposePrIdleUPP               (PrIdleUPP               userUPP);
  130.     EXTERN_API(void)
  131.     DisposePItemUPP                (PItemUPP                userUPP);
  132.     EXTERN_API(void)
  133.     InvokePrIdleUPP                (PrIdleUPP               userUPP);
  134.     EXTERN_API(void)
  135.     InvokePItemUPP                 (DialogPtr               theDialog,
  136.                                     short                   item,
  137.                                     PItemUPP                userUPP);
  138. #endif  /* CALL_NOT_IN_CARBON */
  139. #else
  140.     enum { uppPrIdleProcInfo = 0x00000000 };                        /* pascal no_return_value Func() */
  141.     enum { uppPItemProcInfo = 0x000002C0 };                         /* pascal no_return_value Func(4_bytes, 2_bytes) */
  142.     #define NewPrIdleUPP(userRoutine)                               (PrIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrIdleProcInfo, GetCurrentArchitecture())
  143.     #define NewPItemUPP(userRoutine)                                (PItemUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPItemProcInfo, GetCurrentArchitecture())
  144.     #define DisposePrIdleUPP(userUPP)                               DisposeRoutineDescriptor(userUPP)
  145.     #define DisposePItemUPP(userUPP)                                DisposeRoutineDescriptor(userUPP)
  146.     #define InvokePrIdleUPP(userUPP)                                CALL_ZERO_PARAMETER_UPP((userUPP), uppPrIdleProcInfo)
  147.     #define InvokePItemUPP(theDialog, item, userUPP)                CALL_TWO_PARAMETER_UPP((userUPP), uppPItemProcInfo, (theDialog), (item))
  148. #endif
  149. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  150. #define NewPrIdleProc(userRoutine)                              NewPrIdleUPP(userRoutine)
  151. #define NewPItemProc(userRoutine)                               NewPItemUPP(userRoutine)
  152. #define CallPrIdleProc(userRoutine)                             InvokePrIdleUPP(userRoutine)
  153. #define CallPItemProc(userRoutine, theDialog, item)             InvokePItemUPP(theDialog, item, userRoutine)
  154. #if !OPAQUE_TOOLBOX_STRUCTS
  155. struct TPrPort {
  156.     GrafPort                        gPort;                      /*The Printer's graf port.*/
  157.     QDProcs                         gProcs;                     /*..and its procs*/
  158.     long                            lGParam1;                   /*16 bytes for private parameter storage.*/
  159.     long                            lGParam2;
  160.     long                            lGParam3;
  161.     long                            lGParam4;
  162.     Boolean                         fOurPtr;                    /*Whether the PrPort allocation was done by us.*/
  163.     Boolean                         fOurBits;                   /*Whether the BitMap allocation was done by us.*/
  164. };
  165. typedef struct TPrPort                  TPrPort;
  166. typedef TPrPort *                       TPPrPort;
  167. #else
  168. typedef struct OpaqueTPPrPort*          TPPrPort;
  169. #endif  /* !OPAQUE_TOOLBOX_STRUCTS */
  170. typedef TPPrPort                        TPPrPortRef;
  171. /* Printing Graf Port. All printer imaging, whether spooling, banding, etc, happens "thru" a GrafPort.
  172.   This is the "PrPeek" record. */
  173. struct TPrInfo {
  174.     short                           iDev;                       /*Font mgr/QuickDraw device code*/
  175.     short                           iVRes;                      /*Resolution of device, in device coordinates*/
  176.     short                           iHRes;                      /*..note: V before H => compatable with Point.*/
  177.     Rect                            rPage;                      /*The page (printable) rectangle in device coordinates.*/
  178. };
  179. typedef struct TPrInfo                  TPrInfo;
  180. typedef TPrInfo *                       TPPrInfo;
  181. /* Print Info Record: The parameters needed for page composition. */
  182. struct TPrStl {
  183.     short                           wDev;
  184.     short                           iPageV;
  185.     short                           iPageH;
  186.     SInt8                           bPort;
  187.     TFeed                           feed;
  188. };
  189. typedef struct TPrStl                   TPrStl;
  190. typedef TPrStl *                        TPPrStl;
  191. struct TPrXInfo {
  192.     short                           iRowBytes;
  193.     short                           iBandV;
  194.     short                           iBandH;
  195.     short                           iDevBytes;
  196.     short                           iBands;
  197.     SInt8                           bPatScale;
  198.     SInt8                           bUlThick;
  199.     SInt8                           bUlOffset;
  200.     SInt8                           bUlShadow;
  201.     TScan                           scan;
  202.     SInt8                           bXInfoX;
  203. };
  204. typedef struct TPrXInfo                 TPrXInfo;
  205. typedef TPrXInfo *                      TPPrXInfo;
  206. struct TPrJob {
  207.     short                           iFstPage;                   /*Page Range.*/
  208.     short                           iLstPage;
  209.     short                           iCopies;                    /*No. copies.*/
  210.     SInt8                           bJDocLoop;                  /*The Doc style: Draft, Spool, .., and ..*/
  211.     Boolean                         fFromUsr;                   /*Printing from an User's App (not PrApp) flag*/
  212.     PrIdleUPP                       pIdleProc;                  /*The Proc called while waiting on IO etc.*/
  213.     StringPtr                       pFileName;                  /*Spool File Name: NIL for default.*/
  214.     short                           iFileVol;                   /*Spool File vol, set to 0 initially*/
  215.     SInt8                           bFileVers;                  /*Spool File version, set to 0 initially*/
  216.     SInt8                           bJobX;                      /*An eXtra byte.*/
  217. };
  218. typedef struct TPrJob                   TPrJob;
  219. typedef TPrJob *                        TPPrJob;
  220. /* Print Job: Print "form" for a single print request. */
  221. struct TPrint {
  222.     short                           iPrVersion;                 /*(2) Printing software version*/
  223.     TPrInfo                         prInfo;                     /*(14) the PrInfo data associated with the current style.*/
  224.     Rect                            rPaper;                     /*(8) The paper rectangle [offset from rPage]*/
  225.     TPrStl                          prStl;                      /*(8)  This print request's style.*/
  226.     TPrInfo                         prInfoPT;                   /*(14)  Print Time Imaging metrics*/
  227.     TPrXInfo                        prXInfo;                    /*(16)  Print-time (expanded) Print info record.*/
  228.     TPrJob                          prJob;                      /*(20) The Print Job request (82)  Total of the above; 120-82 = 38 bytes needed to fill 120*/
  229.     short                           printX[19];                 /*Spare to fill to 120 bytes!*/
  230. };
  231. typedef struct TPrint                   TPrint;
  232. typedef TPrint *                        TPPrint;
  233. typedef TPPrint *                       THPrint;
  234. struct TPrStatus {
  235.     short                           iTotPages;                  /*Total pages in Print File.*/
  236.     short                           iCurPage;                   /*Current page number*/
  237.     short                           iTotCopies;                 /*Total copies requested*/
  238.     short                           iCurCopy;                   /*Current copy number*/
  239.     short                           iTotBands;                  /*Total bands per page.*/
  240.     short                           iCurBand;                   /*Current band number*/
  241.     Boolean                         fPgDirty;                   /*True if current page has been written to.*/
  242.     Boolean                         fImaging;                   /*Set while in band's DrawPic call.*/
  243.     THPrint                         hPrint;                     /*Handle to the active Printer record*/
  244.     TPPrPort                        pPrPort;                    /*Ptr to the active PrPort*/
  245.     PicHandle                       hPic;                       /*Handle to the active Picture*/
  246. };
  247. typedef struct TPrStatus                TPrStatus;
  248. typedef TPrStatus *                     TPPrStatus;
  249. typedef TPPrStatus                      TPPrStatusRef;
  250. /* Print Status: Print information during printing. */
  251. struct TPfPgDir {
  252.     short                           iPages;
  253.     long                            iPgPos[129];                /*ARRAY [0..iPfMaxPgs] OF LONGINT*/
  254. };
  255. typedef struct TPfPgDir                 TPfPgDir;
  256. typedef TPfPgDir *                      TPPfPgDir;
  257. typedef TPPfPgDir *                     THPfPgDir;
  258. /* PicFile = a TPfHeader followed by n QuickDraw Pics (whose PicSize is invalid!) */
  259. /* This is the Printing Dialog Record. Only used by folks appending their own
  260.    DITLs to the print dialogs.  Print Dialog: The Dialog Stream object. */
  261. #if !OPAQUE_TOOLBOX_STRUCTS
  262. struct TPrDlg {
  263.     DialogRecord                    Dlg;                        /*The Dialog window*/
  264.     ModalFilterUPP                  pFltrProc;                  /*The Filter Proc.*/
  265.     PItemUPP                        pItemProc;                  /*The Item evaluating proc.*/
  266.     THPrint                         hPrintUsr;                  /*The user's print record.*/
  267.     Boolean                         fDoIt;
  268.     Boolean                         fDone;
  269.     long                            lUser1;                     /*Four longs for apps to hang global data.*/
  270.     long                            lUser2;                     /*Plus more stuff needed by the particular*/
  271.     long                            lUser3;                     /*printing dialog.*/
  272.     long                            lUser4;
  273. };
  274. typedef struct TPrDlg                   TPrDlg;
  275. typedef TPrDlg *                        TPPrDlg;
  276. #else
  277. typedef struct OpaqueTPPrDlg*           TPPrDlg;
  278. #endif  /* !OPAQUE_TOOLBOX_STRUCTS */
  279. typedef TPPrDlg                         TPPrDlgRef;
  280. typedef CALLBACK_API( TPPrDlgRef , PDlgInitProcPtr )(THPrint hPrint);
  281. typedef STACK_UPP_TYPE(PDlgInitProcPtr)                         PDlgInitUPP;
  282. #if OPAQUE_UPP_TYPES
  283. #if CALL_NOT_IN_CARBON
  284.     EXTERN_API(PDlgInitUPP)
  285.     NewPDlgInitUPP                 (PDlgInitProcPtr         userRoutine);
  286.     EXTERN_API(void)
  287.     DisposePDlgInitUPP             (PDlgInitUPP             userUPP);
  288.     EXTERN_API(TPPrDlgRef)
  289.     InvokePDlgInitUPP              (THPrint                 hPrint,
  290.                                     PDlgInitUPP             userUPP);
  291. #endif  /* CALL_NOT_IN_CARBON */
  292. #else
  293.     enum { uppPDlgInitProcInfo = 0x000000F0 };                      /* pascal 4_bytes Func(4_bytes) */
  294.     #define NewPDlgInitUPP(userRoutine)                             (PDlgInitUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPDlgInitProcInfo, GetCurrentArchitecture())
  295.     #define DisposePDlgInitUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  296.     #define InvokePDlgInitUPP(hPrint, userUPP)                      (TPPrDlgRef)CALL_ONE_PARAMETER_UPP((userUPP), uppPDlgInitProcInfo, (hPrint))
  297. #endif
  298. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  299. #define NewPDlgInitProc(userRoutine)                            NewPDlgInitUPP(userRoutine)
  300. #define CallPDlgInitProc(userRoutine, hPrint)                   InvokePDlgInitUPP(hPrint, userRoutine)
  301. struct TGnlData {
  302.     short                           iOpCode;
  303.     short                           iError;
  304.     long                            lReserved;                  /*more fields here depending on call*/
  305. };
  306. typedef struct TGnlData                 TGnlData;
  307. struct TRslRg {
  308.     short                           iMin;
  309.     short                           iMax;
  310. };
  311. typedef struct TRslRg                   TRslRg;
  312. struct TRslRec {
  313.     short                           iXRsl;
  314.     short                           iYRsl;
  315. };
  316. typedef struct TRslRec                  TRslRec;
  317. struct TGetRslBlk {
  318.     short                           iOpCode;
  319.     short                           iError;
  320.     long                            lReserved;
  321.     short                           iRgType;
  322.     TRslRg                          xRslRg;
  323.     TRslRg                          yRslRg;
  324.     short                           iRslRecCnt;
  325.     TRslRec                         rgRslRec[27];
  326. };
  327. typedef struct TGetRslBlk               TGetRslBlk;
  328. struct TSetRslBlk {
  329.     short                           iOpCode;
  330.     short                           iError;
  331.     long                            lReserved;
  332.     THPrint                         hPrint;
  333.     short                           iXRsl;
  334.     short                           iYRsl;
  335. };
  336. typedef struct TSetRslBlk               TSetRslBlk;
  337. struct TDftBitsBlk {
  338.     short                           iOpCode;
  339.     short                           iError;
  340.     long                            lReserved;
  341.     THPrint                         hPrint;
  342. };
  343. typedef struct TDftBitsBlk              TDftBitsBlk;
  344. struct TGetRotnBlk {
  345.     short                           iOpCode;
  346.     short                           iError;
  347.     long                            lReserved;
  348.     THPrint                         hPrint;
  349.     Boolean                         fLandscape;
  350.     SInt8                           bXtra;
  351. };
  352. typedef struct TGetRotnBlk              TGetRotnBlk;
  353. #if CALL_NOT_IN_CARBON
  354. EXTERN_API( void )
  355. PrPurge                         (void)                                                      FOURWORDINLINE(0x2F3C, 0xA800, 0x0000, 0xA8FD);
  356. EXTERN_API( void )
  357. PrNoPurge                       (void)                                                      FOURWORDINLINE(0x2F3C, 0xB000, 0x0000, 0xA8FD);
  358. EXTERN_API( void )
  359. PrOpen                          (void)                                                      FOURWORDINLINE(0x2F3C, 0xC800, 0x0000, 0xA8FD);
  360. EXTERN_API( void )
  361. PrClose                         (void)                                                      FOURWORDINLINE(0x2F3C, 0xD000, 0x0000, 0xA8FD);
  362. EXTERN_API( void )
  363. PrintDefault                    (THPrint                hPrint)                             FOURWORDINLINE(0x2F3C, 0x2004, 0x0480, 0xA8FD);
  364. EXTERN_API( Boolean )
  365. PrValidate                      (THPrint                hPrint)                             FOURWORDINLINE(0x2F3C, 0x5204, 0x0498, 0xA8FD);
  366. EXTERN_API( Boolean )
  367. PrStlDialog                     (THPrint                hPrint)                             FOURWORDINLINE(0x2F3C, 0x2A04, 0x0484, 0xA8FD);
  368. EXTERN_API( Boolean )
  369. PrJobDialog                     (THPrint                hPrint)                             FOURWORDINLINE(0x2F3C, 0x3204, 0x0488, 0xA8FD);
  370. EXTERN_API( TPPrDlgRef )
  371. PrStlInit                       (THPrint                hPrint)                             FOURWORDINLINE(0x2F3C, 0x3C04, 0x040C, 0xA8FD);
  372. EXTERN_API( TPPrDlgRef )
  373. PrJobInit                       (THPrint                hPrint)                             FOURWORDINLINE(0x2F3C, 0x4404, 0x0410, 0xA8FD);
  374. EXTERN_API( void )
  375. PrJobMerge                      (THPrint                hPrintSrc,
  376.                                  THPrint                hPrintDst)                          FOURWORDINLINE(0x2F3C, 0x5804, 0x089C, 0xA8FD);
  377. EXTERN_API( Boolean )
  378. PrDlgMain                       (THPrint                hPrint,
  379.                                  PDlgInitUPP            pDlgInit)                           FOURWORDINLINE(0x2F3C, 0x4A04, 0x0894, 0xA8FD);
  380. EXTERN_API( TPPrPort )
  381. PrOpenDoc                       (THPrint                hPrint,
  382.                                  TPPrPort               pPrPort, /* can be NULL */
  383.                                  Ptr                    pIOBuf)                             FOURWORDINLINE(0x2F3C, 0x0400, 0x0C00, 0xA8FD);
  384. EXTERN_API( void )
  385. PrCloseDoc                      (TPPrPort               pPrPort)                            FOURWORDINLINE(0x2F3C, 0x0800, 0x0484, 0xA8FD);
  386. EXTERN_API( void )
  387. PrOpenPage                      (TPPrPort               pPrPort,
  388.                                  TPRect                 pPageFrame)                         FOURWORDINLINE(0x2F3C, 0x1000, 0x0808, 0xA8FD);
  389. EXTERN_API( void )
  390. PrClosePage                     (TPPrPort               pPrPort)                            FOURWORDINLINE(0x2F3C, 0x1800, 0x040C, 0xA8FD);
  391. EXTERN_API( void )
  392. PrPicFile                       (THPrint                hPrint,
  393.                                  TPPrPort               pPrPort,
  394.                                  Ptr                    pIOBuf,
  395.                                  Ptr                    pDevBuf,
  396.                                  TPPrStatus             prStatus)                           FOURWORDINLINE(0x2F3C, 0x6005, 0x1480, 0xA8FD);
  397. EXTERN_API( short )
  398. PrError                         (void)                                                      FOURWORDINLINE(0x2F3C, 0xBA00, 0x0000, 0xA8FD);
  399. EXTERN_API( void )
  400. PrSetError                      (short                  iErr)                               FOURWORDINLINE(0x2F3C, 0xC000, 0x0200, 0xA8FD);
  401. EXTERN_API( void )
  402. PrGeneral                       (Ptr                    pData)                              FOURWORDINLINE(0x2F3C, 0x7007, 0x0480, 0xA8FD);
  403. EXTERN_API( void )
  404. PrDrvrOpen                      (void)                                                      FOURWORDINLINE(0x2F3C, 0x8000, 0x0000, 0xA8FD);
  405. EXTERN_API( void )
  406. PrDrvrClose                     (void)                                                      FOURWORDINLINE(0x2F3C, 0x8800, 0x0000, 0xA8FD);
  407. EXTERN_API( void )
  408. PrCtlCall                       (short                  iWhichCtl,
  409.                                  long                   lParam1,
  410.                                  long                   lParam2,
  411.                                  long                   lParam3)                            FOURWORDINLINE(0x2F3C, 0xA000, 0x0E00, 0xA8FD);
  412. EXTERN_API( Handle )
  413. PrDrvrDCE                       (void)                                                      FOURWORDINLINE(0x2F3C, 0x9400, 0x0000, 0xA8FD);
  414. EXTERN_API( short )
  415. PrDrvrVers                      (void)                                                      FOURWORDINLINE(0x2F3C, 0x9A00, 0x0000, 0xA8FD);
  416. EXTERN_API( short )
  417. PrLoadDriver                    (void)                                                      FOURWORDINLINE(0x2F3C, 0xD800, 0x0000, 0xA8FD);
  418. #endif  /* CALL_NOT_IN_CARBON */
  419. #if PRAGMA_STRUCT_ALIGN
  420.     #pragma options align=reset
  421. #elif PRAGMA_STRUCT_PACKPUSH
  422.     #pragma pack(pop)
  423. #elif PRAGMA_STRUCT_PACK
  424.     #pragma pack()
  425. #endif
  426. #ifdef PRAGMA_IMPORT_OFF
  427. #pragma import off
  428. #elif PRAGMA_IMPORT
  429. #pragma import reset
  430. #endif
  431. #ifdef __cplusplus
  432. }
  433. #endif
  434. #endif /* __PRINTING__ */