Mac OS 9
Printing.h
Go to the documentation of this file.
1 
19 #ifndef __PRINTING__
20 #define __PRINTING__
21 
22 #ifndef __MACERRORS__
23 #include <MacErrors.h>
24 #endif
25 
26 #ifndef __QUICKDRAW__
27 #include <Quickdraw.h>
28 #endif
29 
30 #ifndef __DIALOGS__
31 #include <Dialogs.h>
32 #endif
33 
34 #if PRAGMA_ONCE
35 #pragma once
36 #endif
37 
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif
42 
43 #if PRAGMA_IMPORT
44 #pragma import on
45 #endif
46 
47 #if PRAGMA_STRUCT_ALIGN
48 #pragma options align = mac68k
49 #elif PRAGMA_STRUCT_PACKPUSH
50 #pragma pack(push, 2)
51 #elif PRAGMA_STRUCT_PACK
52 #pragma pack(2)
53 #endif
54 
55  enum
56  {
57  kFirstPageMin = 1,
58  kLastPageMax = 32767
59  };
60 
61  enum
62  {
63  iPFMaxPgs = 128,
64  iPrPgFract =
65  120,
66  iPrPgFst = 1,
67  iPrPgMax = 9999,
68  iPrRelease = 3,
69  iPrSavPFil = -1,
70  iPrAbort = 0x0080,
71  iPrDevCtl = 7,
72  lPrReset = 0x00010000,
73  lPrLineFeed = 0x00030000,
74  lPrLFStd = 0x0003FFFF,
75  lPrLFSixth = 0x0003FFFF,
76  lPrPageEnd = 0x00020000,
77  lPrDocOpen = 0x00010000,
78  lPrPageOpen = 0x00040000,
79  lPrPageClose = 0x00020000,
80  lPrDocClose = 0x00050000,
81  iFMgrCtl = 8,
82  iMscCtl = 9,
83  iPvtCtl = 10
84  };
85 
86 #define sPrDrvr ".Print"
88  enum
89  {
90  pPrGlobals = 0x00000944,
92  bSpoolLoop = 1,
93  bUser1Loop = 2,
94  bUser2Loop = 3,
95  fNewRunBit = 2,
96  fHiResOK = 3,
97  fWeOpenedRF = 4,
99  lScreenBits = 0,
100  lPaintBits = 1,
101  lHiScreenBits = 0x00000002,
102  lHiPaintBits = 0x00000003,
103  iPrIOCtl = 5,
104  iPrEvtCtl = 6,
105  lPrEvtAll = 0x0002FFFD,
106  lPrEvtTop = 0x0001FFFD,
107  iPrDrvrRef = -3
108  };
109 
110  enum
111  {
112  getRslDataOp = 4,
113  setRslOp = 5,
114  draftBitsOp = 6,
115  noDraftBitsOp = 7,
116  getRotnOp = 8,
117  NoSuchRsl = 1,
118  OpNotImpl = 2,
119  RgType1 = 1
120  };
121 
122  typedef SInt8 TFeed;
123  enum
124  {
125  feedCut = 0,
126  feedFanfold = 1,
127  feedMechCut = 2,
128  feedOther = 3
129  };
130 
131  typedef SInt8 TScan;
132  enum
133  {
134  scanTB = 0,
135  scanBT = 1,
136  scanLR = 2,
137  scanRL = 3
138  };
139 
141  typedef Rect *TPRect;
142  typedef CALLBACK_API(void, PrIdleProcPtr)(void);
143  typedef CALLBACK_API(void, PItemProcPtr)(DialogRef theDialog, short item);
144  typedef STACK_UPP_TYPE(PrIdleProcPtr) PrIdleUPP;
145  typedef STACK_UPP_TYPE(PItemProcPtr) PItemUPP;
146 #if CALL_NOT_IN_CARBON
155  PrIdleUPP
156  NewPrIdleUPP(PrIdleProcPtr userRoutine);
157 #if !OPAQUE_UPP_TYPES
158  enum
159  {
160  uppPrIdleProcInfo = 0x00000000
161  };
162 #ifdef __cplusplus
163  inline PrIdleUPP NewPrIdleUPP(PrIdleProcPtr userRoutine)
164  {
165  return (PrIdleUPP)NewRoutineDescriptor(
166  (ProcPtr)(userRoutine), uppPrIdleProcInfo, GetCurrentArchitecture());
167  }
168 #else
169 #define NewPrIdleUPP(userRoutine) \
170  (PrIdleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrIdleProcInfo, \
171  GetCurrentArchitecture())
172 #endif
173 #endif
174 
183  PItemUPP
184  NewPItemUPP(PItemProcPtr userRoutine);
185 #if !OPAQUE_UPP_TYPES
186  enum
187  {
188  uppPItemProcInfo = 0x000002C0
189  };
190 #ifdef __cplusplus
191  inline PItemUPP NewPItemUPP(PItemProcPtr userRoutine)
192  {
193  return (PItemUPP)NewRoutineDescriptor(
194  (ProcPtr)(userRoutine), uppPItemProcInfo, GetCurrentArchitecture());
195  }
196 #else
197 #define NewPItemUPP(userRoutine) \
198  (PItemUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppPItemProcInfo, \
199  GetCurrentArchitecture())
200 #endif
201 #endif
202 
211  void
212  DisposePrIdleUPP(PrIdleUPP userUPP);
213 #if !OPAQUE_UPP_TYPES
214 #ifdef __cplusplus
215  inline void DisposePrIdleUPP(PrIdleUPP userUPP)
216  {
217  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
218  }
219 #else
220 #define DisposePrIdleUPP(userUPP) DisposeRoutineDescriptor(userUPP)
221 #endif
222 #endif
223 
232  void
233  DisposePItemUPP(PItemUPP userUPP);
234 #if !OPAQUE_UPP_TYPES
235 #ifdef __cplusplus
236  inline void DisposePItemUPP(PItemUPP userUPP)
237  {
238  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
239  }
240 #else
241 #define DisposePItemUPP(userUPP) DisposeRoutineDescriptor(userUPP)
242 #endif
243 #endif
244 
253  void
254  InvokePrIdleUPP(PrIdleUPP userUPP);
255 #if !OPAQUE_UPP_TYPES
256 #ifdef __cplusplus
257  inline void InvokePrIdleUPP(PrIdleUPP userUPP)
258  {
259  CALL_ZERO_PARAMETER_UPP(userUPP, uppPrIdleProcInfo);
260  }
261 #else
262 #define InvokePrIdleUPP(userUPP) \
263  CALL_ZERO_PARAMETER_UPP((userUPP), uppPrIdleProcInfo)
264 #endif
265 #endif
266 
275  void
276  InvokePItemUPP(DialogRef theDialog, short item, PItemUPP userUPP);
277 #if !OPAQUE_UPP_TYPES
278 #ifdef __cplusplus
279  inline void InvokePItemUPP(DialogRef theDialog, short item, PItemUPP userUPP)
280  {
281  CALL_TWO_PARAMETER_UPP(userUPP, uppPItemProcInfo, theDialog, item);
282  }
283 #else
284 #define InvokePItemUPP(theDialog, item, userUPP) \
285  CALL_TWO_PARAMETER_UPP((userUPP), uppPItemProcInfo, (theDialog), (item))
286 #endif
287 #endif
288 
289 #endif
291 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
293 #define NewPrIdleProc(userRoutine) NewPrIdleUPP(userRoutine)
294 #define NewPItemProc(userRoutine) NewPItemUPP(userRoutine)
295 #define CallPrIdleProc(userRoutine) InvokePrIdleUPP(userRoutine)
296 #define CallPItemProc(userRoutine, theDialog, item) \
297  InvokePItemUPP(theDialog, item, userRoutine)
298 #endif
300 #if !OPAQUE_TOOLBOX_STRUCTS
301  struct TPrPort
302  {
303  GrafPort gPort;
305  long lGParam1;
306  long lGParam2;
307  long lGParam3;
308  long lGParam4;
309  Boolean fOurPtr;
311  };
312  typedef struct TPrPort TPrPort;
313  typedef TPrPort *TPPrPort;
314 #else
315 typedef struct OpaqueTPPrPort *TPPrPort;
316 #endif
321  struct TPrInfo
322  {
323  short iDev;
324  short iVRes;
325  short iHRes;
327  };
328  typedef struct TPrInfo TPrInfo;
329  typedef TPrInfo *TPPrInfo;
331  struct TPrStl
332  {
333  short wDev;
334  short iPageV;
335  short iPageH;
336  SInt8 bPort;
337  TFeed feed;
338  };
339  typedef struct TPrStl TPrStl;
340  typedef TPrStl *TPPrStl;
341  struct TPrXInfo
342  {
343  short iRowBytes;
344  short iBandV;
345  short iBandH;
346  short iDevBytes;
347  short iBands;
348  SInt8 bPatScale;
349  SInt8 bUlThick;
350  SInt8 bUlOffset;
351  SInt8 bUlShadow;
352  TScan scan;
353  SInt8 bXInfoX;
354  };
355  typedef struct TPrXInfo TPrXInfo;
356  typedef TPrXInfo *TPPrXInfo;
357  struct TPrJob
358  {
359  short iFstPage;
360  short iLstPage;
361  short iCopies;
362  SInt8 bJDocLoop;
364  PrIdleUPP pIdleProc;
366  short iFileVol;
367  SInt8 bFileVers;
368  SInt8 bJobX;
369  };
370  typedef struct TPrJob TPrJob;
371  typedef TPrJob *TPPrJob;
373  struct TPrint
374  {
375  short iPrVersion;
383  short printX[19];
384  };
385  typedef struct TPrint TPrint;
386  typedef TPrint *TPPrint;
387  typedef TPPrint *THPrint;
388  struct TPrStatus
389  {
390  short iTotPages;
391  short iCurPage;
392  short iTotCopies;
393  short iCurCopy;
394  short iTotBands;
395  short iCurBand;
401  };
402  typedef struct TPrStatus TPrStatus;
403  typedef TPrStatus *TPPrStatus;
404  typedef TPPrStatus TPPrStatusRef;
405 
407  struct TPfPgDir
408  {
409  short iPages;
410  long iPgPos[129];
411  };
412  typedef struct TPfPgDir TPfPgDir;
413  typedef TPfPgDir *TPPfPgDir;
414  typedef TPPfPgDir *THPfPgDir;
419 #if !OPAQUE_TOOLBOX_STRUCTS
420  struct TPrDlg
421  {
422  DialogRecord Dlg;
423  ModalFilterUPP pFltrProc;
424  PItemUPP pItemProc;
427  Boolean fDone;
428  long lUser1;
429  long lUser2;
430  long lUser3;
431  long lUser4;
432  };
433  typedef struct TPrDlg TPrDlg;
434  typedef TPrDlg *TPPrDlg;
435 #else
436 typedef struct OpaqueTPPrDlg *TPPrDlg;
437 #endif
440  typedef CALLBACK_API(TPPrDlgRef, PDlgInitProcPtr)(THPrint hPrint);
441  typedef STACK_UPP_TYPE(PDlgInitProcPtr) PDlgInitUPP;
442 #if CALL_NOT_IN_CARBON
451  PDlgInitUPP
452  NewPDlgInitUPP(PDlgInitProcPtr userRoutine);
453 #if !OPAQUE_UPP_TYPES
454  enum
455  {
456  uppPDlgInitProcInfo = 0x000000F0
457  };
458 #ifdef __cplusplus
459  inline PDlgInitUPP NewPDlgInitUPP(PDlgInitProcPtr userRoutine)
460  {
461  return (PDlgInitUPP)NewRoutineDescriptor(
462  (ProcPtr)(userRoutine), uppPDlgInitProcInfo, GetCurrentArchitecture());
463  }
464 #else
465 #define NewPDlgInitUPP(userRoutine) \
466  (PDlgInitUPP) NewRoutineDescriptor( \
467  (ProcPtr)(userRoutine), uppPDlgInitProcInfo, GetCurrentArchitecture())
468 #endif
469 #endif
470 
479  void
480  DisposePDlgInitUPP(PDlgInitUPP userUPP);
481 #if !OPAQUE_UPP_TYPES
482 #ifdef __cplusplus
483  inline void DisposePDlgInitUPP(PDlgInitUPP userUPP)
484  {
485  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
486  }
487 #else
488 #define DisposePDlgInitUPP(userUPP) DisposeRoutineDescriptor(userUPP)
489 #endif
490 #endif
491 
500  TPPrDlgRef
501  InvokePDlgInitUPP(THPrint hPrint, PDlgInitUPP userUPP);
502 #if !OPAQUE_UPP_TYPES
503 #ifdef __cplusplus
504  inline TPPrDlgRef InvokePDlgInitUPP(THPrint hPrint, PDlgInitUPP userUPP)
505  {
506  return (TPPrDlgRef)CALL_ONE_PARAMETER_UPP(userUPP, uppPDlgInitProcInfo,
507  hPrint);
508  }
509 #else
510 #define InvokePDlgInitUPP(hPrint, userUPP) \
511  (TPPrDlgRef) CALL_ONE_PARAMETER_UPP((userUPP), uppPDlgInitProcInfo, (hPrint))
512 #endif
513 #endif
514 
515 #endif
517 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
519 #define NewPDlgInitProc(userRoutine) NewPDlgInitUPP(userRoutine)
520 #define CallPDlgInitProc(userRoutine, hPrint) \
521  InvokePDlgInitUPP(hPrint, userRoutine)
522 #endif
524  struct TGnlData
525  {
526  short iOpCode;
527  short iError;
528  long lReserved;
529  };
530  typedef struct TGnlData TGnlData;
531  struct TRslRg
532  {
533  short iMin;
534  short iMax;
535  };
536  typedef struct TRslRg TRslRg;
537  struct TRslRec
538  {
539  short iXRsl;
540  short iYRsl;
541  };
542  typedef struct TRslRec TRslRec;
543  struct TGetRslBlk
544  {
545  short iOpCode;
546  short iError;
547  long lReserved;
548  short iRgType;
549  TRslRg xRslRg;
550  TRslRg yRslRg;
551  short iRslRecCnt;
552  TRslRec rgRslRec[27];
553  };
554  typedef struct TGetRslBlk TGetRslBlk;
555  struct TSetRslBlk
556  {
557  short iOpCode;
558  short iError;
559  long lReserved;
560  THPrint hPrint;
561  short iXRsl;
562  short iYRsl;
563  };
564  typedef struct TSetRslBlk TSetRslBlk;
565  struct TDftBitsBlk
566  {
567  short iOpCode;
568  short iError;
569  long lReserved;
570  THPrint hPrint;
571  };
572  typedef struct TDftBitsBlk TDftBitsBlk;
573  struct TGetRotnBlk
574  {
575  short iOpCode;
576  short iError;
577  long lReserved;
578  THPrint hPrint;
579  Boolean fLandscape;
580  SInt8 bXtra;
581  };
582  typedef struct TGetRotnBlk TGetRotnBlk;
583 #if CALL_NOT_IN_CARBON
592  void
593  PrPurge(void);
594 
603  void
604  PrNoPurge(void);
605 
614  void
615  PrOpen(void);
616 
625  void
626  PrClose(void);
627 
636  void
638 
647  Boolean
649 
658  Boolean
660 
669  Boolean
671 
680  TPPrDlgRef
682 
691  TPPrDlgRef
693 
702  void
703  PrJobMerge(THPrint hPrintSrc, THPrint hPrintDst);
704 
733  Boolean
734  PrDlgMain(THPrint hPrint, PDlgInitUPP pDlgInit);
735 
744  TPPrPort
745  PrOpenDoc(THPrint hPrint, TPPrPort pPrPort,
746  Ptr pIOBuf);
747 
756  void
758 
767  void
768  PrOpenPage(TPPrPort pPrPort, TPRect pPageFrame);
769 
778  void
780 
789  void
790  PrPicFile(THPrint hPrint, TPPrPort pPrPort, Ptr pIOBuf, Ptr pDevBuf,
791  TPPrStatus prStatus);
792 
801  short
802  PrError(void);
803 
812  void
813  PrSetError(short iErr);
814 
815 #endif
817 #if CALL_NOT_IN_CARBON
826  void
827  PrGeneral(Ptr pData);
828 
829 #endif
831 #if CALL_NOT_IN_CARBON
840  void
841  PrDrvrOpen(void);
842 
851  void
852  PrDrvrClose(void);
853 
862  void
863  PrCtlCall(short iWhichCtl, long lParam1, long lParam2, long lParam3);
864 
873  Handle
874  PrDrvrDCE(void);
875 
884  short
885  PrDrvrVers(void);
886 
895  short
897 
898 #endif
900 #if PRAGMA_STRUCT_ALIGN
901 #pragma options align = reset
902 #elif PRAGMA_STRUCT_PACKPUSH
903 #pragma pack(pop)
904 #elif PRAGMA_STRUCT_PACK
905 #pragma pack()
906 #endif
907 
908 #ifdef PRAGMA_IMPORT_OFF
909 #pragma import off
910 #elif PRAGMA_IMPORT
911 #pragma import reset
912 #endif
913 
914 #ifdef __cplusplus
915 }
916 #endif
917 
918 #endif
919 * /
Dialog Manager interfaces.
OSErr codes.
unsigned char * StringPtr
Definition: MacTypes.h:477
unsigned char Boolean
Definition: MacTypes.h:318
#define CALL_ZERO_PARAMETER_UPP(upp, procInfo)
Definition: MixedMode.h:790
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
void PrDrvrOpen(void)
void PrClose(void)
void DisposePItemUPP(PItemUPP userUPP)
void PrOpen(void)
#define NewPrIdleUPP(userRoutine)
Definition: Printing.h:169
TPPrDlgRef PrJobInit(THPrint hPrint)
Boolean PrJobDialog(THPrint hPrint)
void PrNoPurge(void)
#define NewPDlgInitUPP(userRoutine)
Definition: Printing.h:465
short PrError(void)
void DisposePrIdleUPP(PrIdleUPP userUPP)
short PrDrvrVers(void)
void PrDrvrClose(void)
void DisposePDlgInitUPP(PDlgInitUPP userUPP)
void PrSetError(short iErr)
@ lPrEvtTop
Definition: Printing.h:106
@ lHiPaintBits
Definition: Printing.h:102
@ lPrEvtAll
Definition: Printing.h:105
@ bDraftLoop
Definition: Printing.h:91
@ iPrIOCtl
Definition: Printing.h:103
@ iPrBitsCtl
Definition: Printing.h:98
@ iPrDrvrRef
Definition: Printing.h:107
TPPrDlg TPPrDlgRef
Definition: Printing.h:439
Boolean PrDlgMain(THPrint hPrint, PDlgInitUPP pDlgInit)
Initialize for and execute a print dialog.
void PrCloseDoc(TPPrPort pPrPort)
Boolean PrStlDialog(THPrint hPrint)
TPPrDlgRef PrStlInit(THPrint hPrint)
Rect * TPRect
Definition: Printing.h:141
TPPrPort PrOpenDoc(THPrint hPrint, TPPrPort pPrPort, Ptr pIOBuf)
#define NewPItemUPP(userRoutine)
Definition: Printing.h:197
TPPrPort TPPrPortRef
Definition: Printing.h:318
Handle PrDrvrDCE(void)
@ RgType1
Definition: Printing.h:119
void InvokePrIdleUPP(PrIdleUPP userUPP)
TPPrDlgRef InvokePDlgInitUPP(THPrint hPrint, PDlgInitUPP userUPP)
void InvokePItemUPP(DialogRef theDialog, short item, PItemUPP userUPP)
Boolean PrValidate(THPrint hPrint)
void PrPicFile(THPrint hPrint, TPPrPort pPrPort, Ptr pIOBuf, Ptr pDevBuf, TPPrStatus prStatus)
void PrOpenPage(TPPrPort pPrPort, TPRect pPageFrame)
@ kLastPageMax
Definition: Printing.h:58
void PrPurge(void)
short PrLoadDriver(void)
void PrCtlCall(short iWhichCtl, long lParam1, long lParam2, long lParam3)
void PrGeneral(Ptr pData)
void PrClosePage(TPPrPort pPrPort)
void PrJobMerge(THPrint hPrintSrc, THPrint hPrintDst)
@ iPvtCtl
Definition: Printing.h:83
@ iPrPgMax
Definition: Printing.h:67
@ iPrSavPFil
Definition: Printing.h:69
@ iPrPgFst
Definition: Printing.h:66
@ lPrReset
Definition: Printing.h:72
@ lPrLFSixth
Definition: Printing.h:75
@ lPrLineFeed
Definition: Printing.h:73
@ iMscCtl
Definition: Printing.h:82
@ lPrDocOpen
Definition: Printing.h:77
void PrintDefault(THPrint hPrint)
Interface to Quickdraw Graphics.
Definition: Dialogs.h:157
Definition: Quickdraw.h:1648
Definition: Quickdraw.h:326
Definition: Quickdraw.h:397
Definition: MacTypes.h:527
Definition: Printing.h:566
Definition: Printing.h:574
Definition: Printing.h:544
Definition: Printing.h:525
Definition: Printing.h:408
Definition: Printing.h:421
long lUser4
Definition: Printing.h:431
Boolean fDoIt
Definition: Printing.h:426
PItemUPP pItemProc
Definition: Printing.h:424
THPrint hPrintUsr
Definition: Printing.h:425
long lUser3
Definition: Printing.h:430
ModalFilterUPP pFltrProc
Definition: Printing.h:423
long lUser2
Definition: Printing.h:429
Definition: Printing.h:322
short iHRes
Definition: Printing.h:325
Rect rPage
Definition: Printing.h:326
short iVRes
Definition: Printing.h:324
Definition: Printing.h:358
SInt8 bJDocLoop
Definition: Printing.h:362
Boolean fFromUsr
Definition: Printing.h:363
short iFileVol
Definition: Printing.h:366
short iLstPage
Definition: Printing.h:360
SInt8 bJobX
Definition: Printing.h:368
PrIdleUPP pIdleProc
Definition: Printing.h:364
SInt8 bFileVers
Definition: Printing.h:367
StringPtr pFileName
Definition: Printing.h:365
Definition: Printing.h:302
QDProcs gProcs
Definition: Printing.h:304
long lGParam2
Definition: Printing.h:306
long lGParam1
Definition: Printing.h:305
Boolean fOurBits
Definition: Printing.h:310
Definition: Printing.h:389
PicHandle hPic
Definition: Printing.h:400
short iCurCopy
Definition: Printing.h:393
short iTotCopies
Definition: Printing.h:392
short iCurPage
Definition: Printing.h:391
short iCurBand
Definition: Printing.h:395
TPPrPort pPrPort
Definition: Printing.h:399
THPrint hPrint
Definition: Printing.h:398
short iTotBands
Definition: Printing.h:394
Boolean fPgDirty
Definition: Printing.h:396
Boolean fImaging
Definition: Printing.h:397
Definition: Printing.h:332
Definition: Printing.h:342
Definition: Printing.h:374
TPrXInfo prXInfo
Definition: Printing.h:380
TPrJob prJob
Definition: Printing.h:381
Rect rPaper
Definition: Printing.h:377
TPrInfo prInfo
Definition: Printing.h:376
short printX[19]
Definition: Printing.h:383
TPrStl prStl
Definition: Printing.h:378
TPrInfo prInfoPT
Definition: Printing.h:379
Definition: Printing.h:538
Definition: Printing.h:532
Definition: Printing.h:556