Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

826 lines
37 KiB

  1. #ifndef _PDEV_H
  2. #define _PDEV_H
  3. /*++
  4. Copyright (c) 1996-2001 Microsoft Corp. & Ricoh Co., Ltd. All rights reserved.
  5. FILE: PDEV.H
  6. Abstract: Header file for OEM UI & rendering plugin.
  7. Environment: Windows NT Unidrv5 driver
  8. Revision History:
  9. 04/15/1999 -Masatoshi Kubokura-
  10. Last modified for Windows2000.
  11. 02/05/2001 -Masatoshi Kubokura-
  12. Add "Thick Paper"
  13. Last modified for Whistler.
  14. 06/29/2001 -Masatoshi Kubokura-
  15. V.1.07
  16. Add FinisherTrayNum
  17. --*/
  18. //
  19. // Files necessary for OEM plug-in.
  20. //
  21. #include <windows.h> // for UI
  22. #include <compstui.h> // for UI
  23. #include <winddiui.h> // for UI
  24. #include <minidrv.h>
  25. #include <stdio.h>
  26. #include <prcomoem.h>
  27. #define MASTERUNIT 1200
  28. #define DEVICE_MASTER_UNIT 7200
  29. #define DRIVER_MASTER_UNIT MASTERUNIT
  30. //
  31. // Compile options
  32. //
  33. #define DOWNLOADFONT // support TrueType download
  34. //#define JISGTT // Current GTT is JIS code set
  35. //#define DDIHOOK // ddi hook is available
  36. //#define JOBLOGSUPPORT_DM // Job/Log is supported (about devmode)
  37. //#define JOBLOGSUPPORT_DLG // Job/Log is supported (about dialog)
  38. //
  39. // Misc definitions follows.
  40. //
  41. #define WRITESPOOLBUF(p, s, n) \
  42. ((p)->pDrvProcs->DrvWriteSpoolBuf(p, s, n))
  43. #define MINIDEV_DATA(p) \
  44. ((POEMPDEV)((p)->pdevOEM)) // device data during job
  45. #define MINIPRIVATE_DM(p) \
  46. ((POEMUD_EXTRADATA)((p)->pOEMDM)) // private devmode
  47. // OBSOLETE @Sep/27/99 ->
  48. //#define UI_GETDRIVERSETTING(p1, p2, p3, p4, p5, p6) \
  49. // ((p1)->pOemUIProcs->DrvGetDriverSetting(p1, p2, p3, p4, p5, p6))
  50. // @Sep/27/99 <-
  51. // ASSERT(VALID_PDEVOBJ) can be used to verify the passed in "pdevobj". However,
  52. // it does NOT check "pdevOEM" and "pOEMDM" fields since not all OEM DLL's create
  53. // their own pdevice structure or need their own private devmode. If a particular
  54. // OEM DLL does need them, additional checks should be added. For example, if
  55. // an OEM DLL needs a private pdevice structure, then it should use
  56. // ASSERT(VALID_PDEVOBJ(pdevobj) && pdevobj->pdevOEM && ...)
  57. #define VALID_PDEVOBJ(pdevobj) \
  58. ((pdevobj) && (pdevobj)->dwSize >= sizeof(DEVOBJ) && \
  59. (pdevobj)->hEngine && (pdevobj)->hPrinter && \
  60. (pdevobj)->pPublicDM && (pdevobj)->pDrvProcs )
  61. // Debug text.
  62. #if DBG
  63. #define ERRORTEXT(s) "ERROR " DLLTEXT(s)
  64. #ifdef UIMODULE
  65. #define DLLTEXT(s) "RPDLUI: " s
  66. #else // !UIMODULE
  67. #define DLLTEXT(s) "RPDLRES: " s
  68. #endif // !UIMODULE
  69. #endif // DBG
  70. ////////////////////////////////////////////////////////
  71. // OEM Signature and version.
  72. ////////////////////////////////////////////////////////
  73. #define OEM_SIGNATURE 'RPDL' // RICOH RPDL printers
  74. #define OEM_VERSION 0x00010000L
  75. ////////////////////////////////////////////////////////
  76. // DDI hooks
  77. // Warning: the following enum order must match the
  78. // order in OEMHookFuncs[].
  79. ////////////////////////////////////////////////////////
  80. #ifdef DDIHOOK
  81. enum {
  82. UD_DrvRealizeBrush,
  83. UD_DrvDitherColor,
  84. UD_DrvCopyBits,
  85. UD_DrvBitBlt,
  86. UD_DrvStretchBlt,
  87. UD_DrvStretchBltROP,
  88. UD_DrvPlgBlt,
  89. UD_DrvTransparentBlt,
  90. UD_DrvAlphaBlend,
  91. UD_DrvGradientFill,
  92. UD_DrvTextOut,
  93. UD_DrvStrokePath,
  94. UD_DrvFillPath,
  95. UD_DrvStrokeAndFillPath,
  96. UD_DrvPaint,
  97. UD_DrvLineTo,
  98. UD_DrvStartPage,
  99. UD_DrvSendPage,
  100. UD_DrvEscape,
  101. UD_DrvStartDoc,
  102. UD_DrvEndDoc,
  103. UD_DrvNextBand,
  104. UD_DrvStartBanding,
  105. UD_DrvQueryFont,
  106. UD_DrvQueryFontTree,
  107. UD_DrvQueryFontData,
  108. UD_DrvQueryAdvanceWidths,
  109. UD_DrvFontManagement,
  110. UD_DrvGetGlyphMode,
  111. MAX_DDI_HOOKS,
  112. };
  113. #endif // DDIHOOK
  114. ////////////////////////////////////////////////////////
  115. // OEM UD Type Defines
  116. ////////////////////////////////////////////////////////
  117. #define ABS(x) ((x > 0)? (x):-(x))
  118. // heap memory size
  119. #define HEAPSIZE64 64 // this must be bigger than 32
  120. #define HEAPSIZE2K 2048 // @Sep/09/98
  121. #ifdef DOWNLOADFONT
  122. // definitions for download font
  123. #define MEM128KB 128 // Kbyte
  124. #define MEM256KB 256
  125. #define MEM512KB 512
  126. #define DLFONT_ID_4 4 // 4 IDs
  127. #define DLFONT_ID_8 8 // 8 IDs
  128. #define DLFONT_ID_16 16 // 16 IDs @Oct/20/98
  129. #define DLFONT_ID_MIN_GPD 0 // *MinFontID in GPD
  130. #define DLFONT_ID_MAX_GPD 15 // *MaxFontID in GPD (6->3 @May/07/98,->7 @Jun/17/98,->15 @Oct/20/98)
  131. #define DLFONT_ID_TOTAL (DLFONT_ID_MAX_GPD - DLFONT_ID_MIN_GPD + 1)
  132. #define DLFONT_GLYPH_MIN_GPD 0 // *MinGlyphID in GPD
  133. #define DLFONT_GLYPH_MAX_GPD 69 // *MaxGlyphID in GPD (103->115 @May/07/98,->69 @Oct/20/98)
  134. #define DLFONT_GLYPH_TOTAL (DLFONT_GLYPH_MAX_GPD - DLFONT_GLYPH_MIN_GPD + 1)
  135. #define DLFONT_SIZE_DBCS11PT_MU 216 // actual value(MSMincho 400dpi) @Nov/18/98
  136. #define DLFONT_SIZE_DBCS9PT_MU 160 // actual value(MSMincho 600dpi) @Nov/18/98
  137. #define DLFONT_SIZE_SBCS11PT_MU 512 // actual value(Arial&Times 600dpi) @Nov/18/98
  138. #define DLFONT_SIZE_SBCS9PT_MU 192 // actual value(Century 400&600dpi) @Nov/18/98
  139. #define DLFONT_HEADER_SIZE 16 // RPDL header size of each download character
  140. #define DLFONT_MIN_BLOCK 32 // RPDL min block size: 32bytes
  141. #define DLFONT_MIN_BLOCK_ID 5 // RPDL min block size ID of 32bytes
  142. typedef struct
  143. {
  144. SHORT nPitch;
  145. SHORT nOffsetX;
  146. SHORT nOffsetY;
  147. } FONTPOS, FAR *LPFONTPOS;
  148. #endif // DOWNLOADFONT
  149. // buffer size
  150. #define FAXBUFSIZE256 256
  151. #define FAXEXTNUMBUFSIZE 8
  152. #define FAXTIMEBUFSIZE 6
  153. #define MY_MAX_PATH 80 // 100->80 @Sep/02/99
  154. #define USERID_LEN 8
  155. #define PASSWORD_LEN 4
  156. #define USERCODE_LEN 8
  157. // private devmode
  158. typedef struct _OEMUD_EXTRADATA {
  159. OEM_DMEXTRAHEADER dmExtraHdr;
  160. // common data between UI & rendering plugin ->
  161. DWORD fUiOption; // bit flags for UI option (This must be after dmExtraHdr)
  162. WORD UiScale; // variable scaling value (%)
  163. WORD UiBarHeight; // barcode height (mm)
  164. WORD UiBindMargin; // left or upper binding margin at duplex printing (mm)
  165. SHORT nUiTomboAdjX; // horizontal distance adjustment at TOMBO (0.1mm unit)
  166. SHORT nUiTomboAdjY; // vertical distance adjustment at TOMBO (0.1mm unit)
  167. // We use private devmode, not use file, because EMF disables reading/writing the file.
  168. BYTE FaxNumBuf[FAXBUFSIZE256]; // fax number
  169. BYTE FaxExtNumBuf[FAXEXTNUMBUFSIZE]; // extra number (external)
  170. BYTE FaxSendTime[FAXTIMEBUFSIZE]; // reservation time
  171. WORD FaxReso; // fax send resolution (0:400,1:200,2:100dpi)
  172. WORD FaxCh; // fax send channel (0:G3,1:G4,2:G3-1ch,3:G3-2ch)
  173. #ifdef JOBLOGSUPPORT_DM
  174. WORD JobType;
  175. WORD LogDisabled;
  176. BYTE UserIdBuf[USERID_LEN+1];
  177. BYTE PasswordBuf[PASSWORD_LEN+1];
  178. BYTE UserCodeBuf[USERCODE_LEN+1];
  179. #endif // JOBLOGSUPPORT_DM
  180. WCHAR SharedFileName[MY_MAX_PATH+16]; // shared data file name @Aug/31/99 (+16 @Sep/02/99)
  181. // <-
  182. } OEMUD_EXTRADATA, *POEMUD_EXTRADATA;
  183. #ifndef GWMODEL
  184. // Fax options for UI plugin
  185. typedef struct _UIDATA{
  186. DWORD fUiOption;
  187. HANDLE hPropPage;
  188. HANDLE hComPropSheet;
  189. PFNCOMPROPSHEET pfnComPropSheet;
  190. POEMUD_EXTRADATA pOEMExtra;
  191. WCHAR FaxNumBuf[FAXBUFSIZE256];
  192. WCHAR FaxExtNumBuf[FAXEXTNUMBUFSIZE];
  193. WCHAR FaxSendTime[FAXTIMEBUFSIZE];
  194. WORD FaxReso;
  195. WORD FaxCh;
  196. // temporary save buffer ->
  197. DWORD fUiOptionTmp;
  198. WCHAR FaxSendTimeTmp[FAXTIMEBUFSIZE];
  199. WORD FaxResoTmp;
  200. WORD FaxChTmp;
  201. // <-
  202. } UIDATA, *PUIDATA;
  203. #else // GWMODEL
  204. // Job/Log options for UI plugin
  205. typedef struct _UIDATA{
  206. DWORD fUiOption;
  207. HANDLE hPropPage;
  208. HANDLE hComPropSheet;
  209. PFNCOMPROPSHEET pfnComPropSheet;
  210. POEMUD_EXTRADATA pOEMExtra;
  211. WORD JobType;
  212. WORD LogDisabled;
  213. WCHAR UserIdBuf[USERID_LEN+1];
  214. WCHAR PasswordBuf[PASSWORD_LEN+1];
  215. WCHAR UserCodeBuf[USERCODE_LEN+1];
  216. } UIDATA, *PUIDATA;
  217. #endif // GWMODEL
  218. // shared file data for UI & rendering plugin
  219. typedef struct _FILEDATA{
  220. DWORD fUiOption; // UI option flag
  221. } FILEDATA, *PFILEDATA;
  222. // rendering plugin device data (separate OEMUD_EXTRADATA @Oct/05/98)
  223. typedef struct _OEMPDEV {
  224. DWORD fGeneral1; // bit flags for RPDL general status(1)
  225. DWORD fGeneral2; // bit flags for RPDL general status(2)
  226. DWORD fModel; // bit flags for printer models
  227. DWORD dwFontH_CPT; // font height(cpt) for AssignIBMfont() (1cpt=1/7200inch)
  228. DWORD dwFontW_CPT; // font width (cpt) for AssignIBMfont()
  229. WORD FontH_DOT; // font height(dot) for TextMode clipping
  230. WORD DocPaperID; // document papersize ID
  231. SHORT nResoRatio; // MASTERUNIT divided by resolution (short->SHORT @Sep/14/98)
  232. WORD Scale; // scaling value for offset calculation
  233. POINT TextCurPos; // TextMode current position
  234. POINT PageMax; // x:page_width, y:page_length
  235. POINT Offset; // total offset
  236. POINT BaseOffset; // offset by PrinterProperty or offset for MF530,150(e),160
  237. LONG PageMaxMoveY; // RPDL max y_position int->LONG @Aug/28/98
  238. LONG TextCurPosRealY; // TextMode current position y without page_length adjustment
  239. DWORD dwBarRatioW; // barcode width ratio (ratio_1.0=1000)
  240. SHORT nBarType; // barcode type
  241. SHORT nBarMaxLen; // barcode character max length
  242. WORD StapleType; // staple (0:disable,1:1staple,2:2staples)
  243. WORD PunchType; // punch (0:disable,1:enable)
  244. WORD CollateType; // collate (0:disable,1:enable,2:uni-dir,3:rotated,4:shifted)
  245. WORD MediaType; // media type (0:standard,1:OHP,2:thick,3:special)
  246. WORD BindPoint; // staple/punch point
  247. WORD Nin1RemainPage; // remain pages in Nin1 (2in1:0-1,4in1:0-3)
  248. WORD TextRectGray; // gray percentage(1-100) of TextMode Rectangle
  249. POINT TextRect; // height & width of TextMode Rectangle
  250. POINT TextRectPrevPos; // previous position of TextMode Rectangle
  251. DWORD PhysPaperWidth; // paper width for CustomSize
  252. DWORD PhysPaperLength; // paper length for CustomSize
  253. DWORD dwSrcBmpWidthByte; // for raster data emission (width in byte)
  254. DWORD dwSrcBmpHeight; // for raster data emission (height in dot)
  255. PBYTE pRPDLHeap2K; // heap memory for OEMOutputCharStr&OEMDownloadCharGlyph @Sep/09/98
  256. BYTE RPDLHeap64[HEAPSIZE64]; // 64byte heap memory
  257. WORD RPDLHeapCount; // current heap usage
  258. WORD FinisherTrayNum; // finisher shift tray# @Jun/25/2001
  259. #ifdef DOWNLOADFONT
  260. DWORD dwDLFontUsedMem; // used memory size for Download font
  261. WORD DLFontCurGlyph;
  262. WORD DLFontMaxMemKB;
  263. WORD DLFontMaxID;
  264. WORD DLFontMaxGlyph;
  265. SHORT nCharPosMoveX;
  266. FONTPOS* pDLFontGlyphInfo; // download glyph info (array->pointer @Sep/08/98)
  267. #endif // DOWNLOADFONT
  268. #ifdef DDIHOOK
  269. PFN pfnUnidrv[MAX_DDI_HOOKS]; // Unidrv's hook function pointer
  270. #endif // DDIHOOK
  271. } OEMPDEV, *POEMPDEV;
  272. // bit definitions of fGeneral1
  273. #define RLE_COMPRESS_ON 0 // Raster image compression is on (<-IMAGE_NOCOMPRESS MSKK)
  274. #define TEXT_CLIP_VALID 1 // TextMode(font/image) clipping is valid
  275. #define TEXT_CLIP_SET_GONNAOUT 2 // TextMode clipping-set command is going to be outputed
  276. #define TEXT_CLIP_CLR_GONNAOUT 3 // TextMode clipping-clear command is going to be outputed
  277. #define FONT_VERTICAL_ON 4 // vertical font mode on
  278. #define FONT_BOLD_ON 5 // bold on
  279. #define FONT_ITALIC_ON 6 // italic on
  280. #define FONT_WHITETEXT_ON 7 // white text on
  281. #define ORIENT_LANDSCAPE 8 // orientation is landscape
  282. #define SWITCH_PORT_LAND 9 // switching portrait/landscape is needed
  283. #define DUPLEX_LEFTMARGIN_VALID 10 // left margin at duplex printing is set
  284. #define DUPLEX_UPPERMARGIN_VALID 11 // upper margin at duplex printing is set
  285. #define PAPER_CUSTOMSIZE 12 // Paper is CustomSize
  286. #define PAPER_DOUBLEPOSTCARD 13 // Paper is DoublePostcard
  287. #define IMGCTRL_2IN1_67 14 // ImageControl:2in1(Scale 67%)
  288. #define IMGCTRL_2IN1_100 15 // ImageControl:2in1(Scale 100%)
  289. #define IMGCTRL_4IN1_50 16 // ImageControl:4in1(Scale 50%)
  290. #define IMGCTRL_AA67 17 // ImageControl:A->A(Scale 67%)
  291. #define IMGCTRL_BA80 18 // ImageControl:B->A(Scale 80%)
  292. #define IMGCTRL_BA115 19 // ImageControl:B->A(Scale 115%)
  293. #define DUPLEX_VALID 20 // duplex is valid
  294. #define XM_ABS_GONNAOUT 21 // Move_X command is going to be outputed
  295. #define YM_ABS_GONNAOUT 22 // Move_Y command is going to be outputed
  296. #define CUSTOMSIZE_USE_LAND 23 // orientation adjustment in CustomSize
  297. #define CUSTOMSIZE_MAKE_LAND_PORT 24 // orientation adjustment in CustomSize
  298. #define IMGCTRL_AA141 25 // ImageControl:A->A(Scale 141%)
  299. #define IMGCTRL_AA200 26 // ImageControl:A->A(Scale 200%)
  300. #define IMGCTRL_AA283 27 // ImageControl:A->A(Scale 283%)
  301. #define IMGCTRL_A1_400 28 // ImageControl:A1(Scale 400%)
  302. //#define MEDIATYPE_OHP 29 // MediaType:Transparency(OHP)
  303. //#define MEDIATYPE_THICK 30 // MediaType:Thick Paper
  304. //#define MEDIATYPE_CHANGED 31 // MediaType is changed
  305. #define VARIABLE_SCALING_VALID 29 // variable scaling command emitted @Jan/27/2000
  306. // bit definitions of fGeneral2
  307. // if you modify them, don't forget to update BITCLR_BARCODE below
  308. #define BARCODE_MODE_IN 0 // enter barcode mode
  309. #define BARCODE_DATA_VALID 1 // barcode data is valid
  310. #define BARCODE_FINISH 2 // barcode data is finished
  311. #define BARCODE_CHECKDIGIT_ON 3 // add checkdigit in barcode
  312. #define BARCODE_ROT90 4 // vartical(rotation90) barcode
  313. #define BARCODE_ROT270 5 // vartical(rotation270) barcode
  314. #define TEXTRECT_CONTINUE 6 // TextMode Rectangle drawing continues
  315. #define EDGE2EDGE_PRINT 7 // Edge to Edge printing
  316. #define LONG_EDGE_FEED 8 // Long Edge Feed at Multi Tray
  317. #define OEM_COMPRESS_ON 9 // OEM Compress is available
  318. #define DIVIDE_DATABLOCK 10 // Divide raster data block for SP4mkII,5,7,8
  319. // bit definitions of fModel
  320. // if you modify this, don't forget to update PRODUCTS_SINCExx or follows.
  321. #define GRP_MF530 0 // model=MF530
  322. #define GRP_MF150 1 // model=MF150
  323. #define GRP_MF150E 2 // model=MF150e,160
  324. #define GRP_MFP250 3 // model=MF-P250,355,250(FAX),355(FAX),MF-FD355
  325. #define GRP_SP4II 4 // model=SP4mkII,5
  326. #define GRP_SP8 5 // model=SP7,8,7mkII,8mkII,80
  327. #define GRP_SP10 6 // model=SP-10,10mkII
  328. #define GRP_SP9 7 // model=SP9,10Pro
  329. #define GRP_SP9II 8 // model=SP9II,10ProII,90
  330. #define GRP_NX100 9 // model=NX-100
  331. #define GRP_NX500 10 // model=NX-500,1000,110,210,510,1100
  332. //#define GRP_MFP250E 11 // model=MF-P250e,355e
  333. #define GRP_MF250M 11 // model=MF250M
  334. #define GRP_MF3300 13 // model=MF3300W,3350W,3540W,3580W
  335. #define GRP_IP1 14 // model=IP-1
  336. #define GRP_NX70 15 // model=NX70,71
  337. #define GRP_NX700 16 // model=NX700,600,FAX Printer,MF700
  338. #define GRP_MF200 17 // model=MF200,MF-p150,MF2200 (separate GRP_SP9II @Sep/01/98)
  339. #define GRP_NX900 18 // model=NX900
  340. #define GRP_NX710 20 // model=710,610 (separate GRP_MF1530 @Jun/23/2000)
  341. #define GRP_NX720 21 // model=NX620,620N,720N,Neo350,350D,450,220,270
  342. // @Jun/25/2001 ->
  343. //#define GRP_MF3550 12 // model=MF2700,3500,3550,4550,5550,6550,3530,3570,4570,
  344. // // 5550EX,6550EX,3530e,3570e,4570e,5570,7070,8570,105Pro
  345. //#define GRP_MF1530 19 // model=MF1530,2230,2730,NX800,910,810
  346. #define GRP_MF3550 12 // model=MF2700,3500,3550,4550,5550,6550,3530,3570,4570,5550EX,6550EX,1530
  347. #define GRP_NX800 19 // model=NX800,810,910,MF2230,2730 (remove MF1530, and rename GRP_MF1530)
  348. #define GRP_MF3530E 22 // model=MF3530e,3570e,4570e,5570,7070,8570,105Pro
  349. // @Jun/25/2001 ->
  350. /// bit definitions of fUiOption
  351. #define FAX_SEND 0 // 1=send fax at imagio FAX
  352. #define FAX_USEADDRESSBOOK 1 // 1=use addressbook
  353. #define HOLD_OPTIONS 2 // 1=hold options after sending
  354. #define FAX_SETTIME 3 // 1=reservation time available
  355. #define FAX_SIMULPRINT 4 // 1=send fax and print simultaneously
  356. #define FAX_RPDLCMD 5 // 1=send RPDL command
  357. #define FAX_MH 6 // 0=use MMR, 1=use MH
  358. #define PRINT_DONE 7 // 1=print done (rendering plugin set this)
  359. #define DISABLE_BAR_SUBFONT 8 // disable printing readable font under barcode
  360. #define ENABLE_BIND_RIGHT 9 // enable stapling right side
  361. #define ENABLE_TOMBO 10 // print TOMBO @Sep/14/98
  362. // UI plugin local ->
  363. #define OPT_NODUPLEX 16
  364. #define OPT_VARIABLE_SCALING 17
  365. #define FAX_MODEL 18
  366. #define FAXMAINDLG_UPDATED 19 // 1=fax main dialog updated
  367. #define FAXSUBDLG_UPDATED 20 // 1=fax sub dialog updated
  368. #define FAXSUBDLG_UPDATE_APPLIED 21 // 1=fax sub dialog update applied
  369. #define FAXSUBDLG_INITDONE 22
  370. #define UIPLUGIN_NOPERMISSION 23 // same as DM_NOPERMISSION
  371. #define JOBLOGDLG_UPDATED 24 // 1=Job/Log dialog updated
  372. // <-
  373. // staple/punch point in duplex printing(BindPoint)
  374. #define BIND_ANY 0
  375. #define BIND_LEFT 1
  376. #define BIND_RIGHT 2
  377. #define BIND_UPPER 3
  378. // flag bit operation
  379. #define BIT(num) ((DWORD)1<<(num))
  380. #define BITCLR32(flag,num) ((flag) &= ~BIT(num))
  381. #define BITSET32(flag,num) ((flag) |= BIT(num))
  382. #define BITTEST32(flag,num) ((flag) & BIT(num))
  383. #define TO1BIT(flag,num) (((flag)>>(num)) & (DWORD)1)
  384. #define BITCPY32(dst,src,num) ((dst) = ((DWORD)(src) & BIT(num))? \
  385. (DWORD)(dst) | BIT(num) : (DWORD)(dst) & ~BIT(num))
  386. #define BITNCPY32(dst,src,num) ((dst) = ((DWORD)(src) & BIT(num))? \
  387. (DWORD)(dst) & ~BIT(num) : (DWORD)(dst) | BIT(num))
  388. #define TEST_OBJ_CHANGE(flag) ((flag) & (BIT(BRUSH_CHANGE)|BIT(PEN_CHANGE)| \
  389. BIT(SCAN_PEN_WIDTH_1)|BIT(SCAN_PEN_WIDTH_ORG)))
  390. #define TEST_2IN1_MODE(flag) ((flag) & (BIT(IMGCTRL_2IN1_100)|BIT(IMGCTRL_2IN1_67)))
  391. #define TEST_4IN1_MODE(flag) ((flag) & (BIT(IMGCTRL_4IN1_50)))
  392. #define TEST_NIN1_MODE(flag) ((flag) & (BIT(IMGCTRL_2IN1_100)|BIT(IMGCTRL_2IN1_67)|BIT(IMGCTRL_4IN1_50)))
  393. #define BITCLR_NIN1_MODE(flag) ((flag) &= ~(BIT(IMGCTRL_2IN1_100)|BIT(IMGCTRL_2IN1_67)|BIT(IMGCTRL_4IN1_50)))
  394. #define TEST_SCALING_SEL_TRAY(flag) ((flag) & (BIT(IMGCTRL_AA67)|BIT(IMGCTRL_BA80)|BIT(IMGCTRL_BA115)|BIT(IMGCTRL_AA141)|BIT(IMGCTRL_AA200)|BIT(IMGCTRL_AA283)|BIT(IMGCTRL_A1_400)))
  395. #define BITCLR_SCALING_SEL_TRAY(flag) ((flag) &= ~(BIT(IMGCTRL_AA67)|BIT(IMGCTRL_BA80)|BIT(IMGCTRL_BA115)|BIT(IMGCTRL_AA141)|BIT(IMGCTRL_AA200)|BIT(IMGCTRL_AA283)|BIT(IMGCTRL_A1_400)))
  396. #define BITCLR_BARCODE(flag) ((flag) &= ~(BIT(BARCODE_MODE_IN)|BIT(BARCODE_DATA_VALID)| \
  397. BIT(BARCODE_FINISH)|BIT(BARCODE_CHECKDIGIT_ON)| \
  398. BIT(BARCODE_ROT90)|BIT(BARCODE_ROT270)))
  399. #define BITCLR_UPPER_FLAG(flag) ((flag) &= 0x0000FFFF)
  400. // models since 2000
  401. #define PRODUCTS_SINCE2000 (BIT(GRP_NX720))
  402. // models since '99
  403. #define PRODUCTS_SINCE99 (BIT(GRP_NX900)|BIT(GRP_NX800)|BIT(GRP_NX710)|PRODUCTS_SINCE2000)
  404. // models since '98
  405. #define PRODUCTS_SINCE98 (BIT(GRP_MF3550)|BIT(GRP_MF3530E)|BIT(GRP_MF3300)|BIT(GRP_NX70)|BIT(GRP_NX700)|PRODUCTS_SINCE99)
  406. // models since '97 (delete GRP_MFP250E @Apr/15/99)
  407. #define PRODUCTS_SINCE97 (BIT(GRP_NX500)|BIT(GRP_MF250M)|PRODUCTS_SINCE98)
  408. // models since '96 (add GPR_MF200 @Sep/01/98)
  409. #define PRODUCTS_SINCE96 (BIT(GRP_SP9II)|BIT(GRP_MF200)|BIT(GRP_NX100)|PRODUCTS_SINCE97)
  410. // capabilty of media type option(Standard, OHP, Thick)
  411. #define TEST_CAPABLE_MEDIATYPE(flag) ((flag) & (BIT(GRP_MF3550)|BIT(GRP_MF3530E)|BIT(GRP_NX800)|BIT(GRP_NX710)|BIT(GRP_NX720)))
  412. // A2 printer
  413. #define TEST_CAPABLE_PAPER_A2(flag) ((flag) & (BIT(GRP_MF3300)))
  414. // scailing over 141% of A2 printer/A1 plotter
  415. #define TEST_PLOTTERMODEL_SCALING(flag) ((flag) & (BIT(GRP_MF3300)|BIT(GRP_IP1)))
  416. // A3 printer && CustomSize width == 297
  417. #define TEST_CAPABLE_PAPER_A3_W297(flag) ((flag) & (PRODUCTS_SINCE97 & ~BIT(GRP_MF3300)))
  418. //// dual RPGL(RPGL&RPGL2) in memory card
  419. //#define TEST_CAPABLE_DUALRPGL(flag) ((flag) & (PRODUCTS_SINCE97 & ~BIT(GRP_MF250M)))
  420. // A4 printer
  421. #define TEST_CAPABLE_PAPER_A4MAX(flag) ((flag) & (BIT(GRP_NX70)))
  422. // capability of Select_Tray_by_Papersize("papername+X")
  423. #define TEST_CAPABLE_PAPERX(flag) ((flag) & (BIT(GRP_MF150E)|BIT(GRP_MFP250)|BIT(GRP_IP1)|PRODUCTS_SINCE96))
  424. // fixed bug about reset smoothing/tonner_save_mode at ENDDOC (We must not reset SP8 series.)
  425. #define TEST_BUGFIX_RESET_SMOOTH(flag) ((flag) & (BIT(GRP_SP10)|BIT(GRP_SP9)|PRODUCTS_SINCE96))
  426. // fixed bug about formfeed around ymax-coordinate.
  427. #define TEST_BUGFIX_FORMFEED(flag) ((flag) & PRODUCTS_SINCE98)
  428. // DeltaRow Compression while TrueType font downloading
  429. #define TEST_CAPABLE_DOWNLOADFONT_DRC(flag) ((flag) & (BIT(GRP_NX70)|BIT(GRP_NX700)|PRODUCTS_SINCE99))
  430. // GW architecture model
  431. #define TEST_GWMODEL(flag) ((flag) & (BIT(GRP_NX720)))
  432. // RPDL(NX800 etc) bug: Job define command is needed for shifted collate or staple @Jun/29/2001
  433. #define TEST_NEED_JOBDEF_CMD(flag) ((flag) & (BIT(GRP_MF3530E)|BIT(GRP_NX800)|BIT(GRP_NX720)))
  434. #define TEST_AFTER_SP9II(flag) ((flag) & PRODUCTS_SINCE96)
  435. #define TEST_AFTER_SP10(flag) ((flag) & (BIT(GRP_SP10)|BIT(GRP_SP9)|BIT(GRP_MFP250)|BIT(GRP_IP1)|PRODUCTS_SINCE96))
  436. #define TEST_AFTER_SP8(flag) ((flag) & (BIT(GRP_SP8)|BIT(GRP_SP10)|BIT(GRP_SP9)|BIT(GRP_MFP250)|BIT(GRP_IP1)|PRODUCTS_SINCE96))
  437. #define TEST_GRP_240DPI(flag) ((flag) & (BIT(GRP_SP4II)|BIT(GRP_SP8)))
  438. #define TEST_GRP_OLDMF(flag) ((flag) & (BIT(GRP_MF530)|BIT(GRP_MF150)|BIT(GRP_MF150E)))
  439. #define TEST_MAXCOPIES_99(flag) ((flag) & (BIT(GRP_SP4II)|BIT(GRP_SP8)|BIT(GRP_SP10)|BIT(GRP_SP9)|BIT(GRP_MF150)|BIT(GRP_MF150E)|BIT(GRP_MF200)|BIT(GRP_MF250M)|BIT(GRP_IP1))) // @Sep/01/98
  440. // approximate value for using 10pt raster font (240dpi model) & standard width of
  441. // barcode.
  442. // if you make NEAR10PT_MIN less, see font-clipping at OEMOutputChar() of rpdlms.c
  443. #define NEAR10PT_MIN 900 // 9pt
  444. #define NEAR10PT_MAX 1110 // 11pt
  445. // RPDL characters assigned block for AssignIBMfont()
  446. #define IBMFONT_ENABLE_ALL 1 // <-JIS1_BLOCK @Sep/14/98
  447. #define IBMFONT_RESUME 4 // <-INSUFFICIENT_BLOCK @Sep/14/98
  448. // DrawTOMBO() action item @Sep/14/98
  449. #define INIT_TOMBO 0
  450. #define DRAW_TOMBO 1
  451. // RPDL GrayFill
  452. #define RPDLGRAYMAX 64
  453. #define RPDLGRAYMIN 2 // @Aug/15/98
  454. // RPDL staple position
  455. #define STAPLE_UPPERLEFT 0 // upper left
  456. #define STAPLE_LEFT2 2 // left 2 position
  457. #define STAPLE_RIGHT2 10 // right 2 position
  458. #define STAPLE_UPPERRIGHT 12 // upper right
  459. #define STAPLE_UPPER2 14 // upper 2 position
  460. #define STAPLE_UPPERLEFT_CORNER 0 // upper left (corner mode)
  461. #define STAPLE_UPPERRIGHT_CORNER 3 // upper right (corner mode)
  462. // RPDL punch position
  463. #define PUNCH_LEFT 0
  464. #define PUNCH_RIGHT 2
  465. #define PUNCH_UPPER 3
  466. // collate type
  467. #define COLLATE_OFF 0
  468. #define COLLATE_ON 1
  469. #define COLLATE_UNIDIR 2
  470. #define COLLATE_ROTATED 3
  471. #define COLLATE_SHIFTED 4
  472. // media type
  473. #define MEDIATYPE_STD 0 // Standard
  474. #define MEDIATYPE_OHP 1 // Transparency(OHP)
  475. #define MEDIATYPE_THICK 2 // Thick Paper
  476. #define MEDIATYPE_SPL 3 // Special
  477. #define MEDIATYPE_TRACE 4 // Tracing Paper
  478. #define MEDIATYPE_LABEL 12 // Labels
  479. #define MEDIATYPE_THIN 20 // Thin Paper
  480. // definition for barcode
  481. #define BARCODE_MAX HEAPSIZE64 // max# of barcode character
  482. #define BAR_UNIT_JAN 330 // 0.33mm:default module unit of JAN
  483. #define BAR_UNIT1_2OF5 300 // 0.3mm: default module unit1 of 2of5,CODE39
  484. #define BAR_UNIT2_2OF5 750 // 0.75mm:default module unit2 of 2of5,CODE39
  485. #define BAR_UNIT1_NW7 210 // 0.21mm:default module unit1 of NW-7
  486. #define BAR_UNIT2_NW7 462 // 0.462mm:default module unit2 of NW-7
  487. #define BAR_W_MIN_5PT 504 // scaling minimum limit of 5pt
  488. #define BAR_H_DEFAULT 10 // 10mm:default bar height
  489. #define BAR_H_MAX 999 // 999mm:max bar height
  490. #define BAR_H_MIN 1 // 1mm:min bar height
  491. // @Feb/08/2000 ->
  492. #define BAR_TYPE_JAN_STD 0 // JAN(STANDARD)
  493. #define BAR_TYPE_JAN_SHORT 1 // JAN(SHORT)
  494. #define BAR_TYPE_2OF5IND 2 // 2of5(INDUSTRIAL)
  495. #define BAR_TYPE_2OF5MTX 3 // 2of5(MATRIX)
  496. #define BAR_TYPE_2OF5ITF 4 // 2of5(ITF)
  497. #define BAR_TYPE_CODE39 5 // CODE39
  498. #define BAR_TYPE_NW7 6 // NW-7
  499. #define BAR_TYPE_CUSTOMER 7 // CUSTOMER
  500. #define BAR_TYPE_CODE128 8 // CODE128
  501. #define BAR_TYPE_UPC_A 9 // UPC(A)
  502. #define BAR_TYPE_UPC_E 10 // UPC(E)
  503. #define BAR_H_CUSTOMER 36 // 3.6mm:default bar height
  504. #define BAR_CODE128_START 104 // CODE128-B start character
  505. // @Feb/08/2000 <-
  506. // max/min binding margin in RPDL
  507. #define BIND_MARGIN_MAX 50
  508. #define BIND_MARGIN_MIN 0
  509. // variable scaling
  510. #define VAR_SCALING_DEFAULT 100
  511. #define VAR_SCALING_MAX 200
  512. #ifndef GWMODEL // @Sep/21/2000
  513. #define VAR_SCALING_MIN 50
  514. #else // GWMODEL
  515. #define VAR_SCALING_MIN 40
  516. #endif // GWMODEL
  517. // adjust distance of TOMBO
  518. #define DEFAULT_0 0
  519. #define TOMBO_ADJ_MAX 50
  520. #define TOMBO_ADJ_MIN (-50)
  521. // margin to disable FF by RPDL
  522. #define DISABLE_FF_MARGIN_STD 48 // unit:masterunit
  523. #define DISABLE_FF_MARGIN_E2E 72 // unit:masterunit at Edge to Edge Print
  524. // for clipping of font at paper bottom
  525. #define CLIPHEIGHT_12PT 100 // (dot) 12pt at 600dpi
  526. // clear clipping
  527. #define CLIP_IFNEED 0
  528. #define CLIP_MUST 1
  529. // user defined papersize
  530. #define USRD_W_A3_OLD 296
  531. #define USRD_W_A3 297
  532. #define USRD_W_A2 432
  533. #define USRD_W_A4 216
  534. #define USRD_H_MIN148 148
  535. // font resource # in GPD (if you reorder of PFM files at GPD, check here.)
  536. #define EURO_FNT_FIRST 1
  537. #define BOLDFACEPS 2
  538. #define EURO_MSFNT_FIRST 5
  539. #define SYMBOL 18
  540. #define EURO_FNT_LAST 19 // if you change this, watch TEST_VERTICALFONT below.
  541. #define JPN_FNT_FIRST (EURO_FNT_LAST+1)
  542. #define MINCHO_1 JPN_FNT_FIRST
  543. #define MINCHO_B1 (JPN_FNT_FIRST+2)
  544. #define MINCHO_E1 (JPN_FNT_FIRST+4)
  545. #define GOTHIC_B1 (JPN_FNT_FIRST+6)
  546. #define GOTHIC_M1 (JPN_FNT_FIRST+8)
  547. #define GOTHIC_E1 (JPN_FNT_FIRST+10)
  548. #define MARUGOTHIC_B1 (JPN_FNT_FIRST+12)
  549. #define MARUGOTHIC_M1 (JPN_FNT_FIRST+14)
  550. #define MARUGOTHIC_L1 (JPN_FNT_FIRST+16)
  551. #define GYOSHO_1 (JPN_FNT_FIRST+18)
  552. #define KAISHO_1 (JPN_FNT_FIRST+20)
  553. #define KYOKASHO_1 (JPN_FNT_FIRST+22)
  554. #define MINCHO10_RAS (JPN_FNT_FIRST+24) // for 240dpi model
  555. #define MINCHO_3 (JPN_FNT_FIRST+26) // for NX-100 only
  556. #define GOTHIC_B3 (JPN_FNT_FIRST+28) // for NX-100 only
  557. #define AFTER_SP9II_FNT_FIRST (JPN_FNT_FIRST+30) // MINCHO_2
  558. #define JPN_MSPFNT_FIRST (JPN_FNT_FIRST+54) // PMINCHO
  559. #define JPN_FNT_LAST (JPN_FNT_FIRST+56) // PGOTHIC
  560. #define TEST_VERTICALFONT(id) ((id)%2)
  561. // Command callback IDs (Almost all IDs come from Win95/NT4 GPC.)
  562. #define CMD_SEND_BLOCK 24 // <- CMD_SEND_BLOCK_COMPRESS MSKK
  563. //#define CMD_SET_CLIPRECT 25
  564. //#define CMD_CLEAR_CLIPRECT 26
  565. #define CMD_ENDDOC_SP4II 27
  566. #define CMD_ENDDOC_SP8 28
  567. #define CMD_ENDDOC_SP9 29
  568. #define CMD_ENDDOC_400DPI_MODEL 30
  569. #define CMD_MULTI_COPIES 31
  570. //#define CMD_BEGIN_POLYGON 32
  571. //#define CMD_CONTINUE_POLYLINE 33
  572. //#define CMD_CONTINUE_POLYGON 34
  573. //#define CMD_RECTANGLE 35
  574. //#define CMD_CIRCLE 36
  575. #define CMD_FF 37
  576. #define CMD_FONT_BOLD_ON 38
  577. #define CMD_FONT_BOLD_OFF 39
  578. #define CMD_FONT_ITALIC_ON 40
  579. #define CMD_FONT_ITALIC_OFF 41
  580. #define CMD_FONT_WHITETEXT_ON 42
  581. #define CMD_FONT_WHITETEXT_OFF 43
  582. #define CMD_XM_ABS 44 // These 6 IDs must be in this order.
  583. #define CMD_XM_REL 45 //
  584. #define CMD_XM_RELLEFT 46 //
  585. #define CMD_YM_ABS 47 //
  586. #define CMD_YM_REL 48 //
  587. #define CMD_YM_RELUP 49 //
  588. #define CMD_BEGINDOC_SP9 50
  589. #define CMD_BEGINDOC_MF150E 51
  590. #define CMD_RES240 52
  591. #define CMD_RES400 53
  592. #define CMD_RES600 54
  593. #define CMD_SELECT_PAPER_CUSTOM 55
  594. #define CMD_SET_PORTRAIT 56
  595. #define CMD_SET_LANDSCAPE 57
  596. //#define CMD_SELECT_SOLID 58
  597. //#define CMD_SELECT_HS_HORZ 59
  598. //#define CMD_SELECT_HS_VERT 60
  599. //#define CMD_SELECT_HS_FDIAG 61
  600. //#define CMD_SELECT_HS_BDIAG 62
  601. //#define CMD_SELECT_HS_CROSS 63
  602. //#define CMD_SELECT_HS_DIAGCROSS 64
  603. //#define CMD_DELETE_BRUSHSTYLE 65
  604. //#define CMD_EXIT_VECT 66
  605. #define CMD_BEGINDOC_SP4II 67
  606. #define CMD_BEGINDOC_SP8 68
  607. #define CMD_BEGINDOC_MF530 69
  608. //#define CMD_DUPLEX_ON 70
  609. #define CMD_DUPLEX_VERT 71
  610. #define CMD_DUPLEX_HORZ 72
  611. #define CMD_SELECT_AUTOFEED 73
  612. #define CMD_SELECT_MANUALFEED 74
  613. #define CMD_SELECT_MULTIFEEDER 75
  614. #define CMD_SELECT_PAPER_A6 76
  615. #define CMD_BEGINDOC_SP9II 77
  616. #define CMD_BEGINDOC_MF150 78
  617. #define CMD_BEGINDOC_SP10 79
  618. #define CMD_RLE_COMPRESS_ON 80 // <- CMD_SEND_BLOCK_NOCOMPRESS MSKK
  619. //#define CMD_CIRCLE_PIE 81 // These 6 IDs must be in this order.
  620. //#define CMD_CIRCLE_ARC 82 //
  621. //#define CMD_CIRCLE_CHORD 83 //
  622. //#define CMD_ELLIPSE_PIE 84 //
  623. //#define CMD_ELLIPSE_ARC 85 //
  624. //#define CMD_ELLIPSE_CHORD 86 //
  625. #define CMD_BEGINDOC_MFP250 87
  626. #define CMD_END_POLYGON 88
  627. #define CMD_SELECT_PAPER_A3 89
  628. #define CMD_SELECT_PAPER_A4 90
  629. #define CMD_SELECT_PAPER_A5 91
  630. #define CMD_SELECT_PAPER_B4 92
  631. #define CMD_SELECT_PAPER_B5 93
  632. #define CMD_SELECT_PAPER_B6 94
  633. #define CMD_SELECT_PAPER_TABLOID 95
  634. #define CMD_SELECT_PAPER_LEGAL 96
  635. #define CMD_SELECT_PAPER_LETTER 97
  636. #define CMD_SELECT_PAPER_STATEMENT 98
  637. #define CMD_IMGCTRL_AA67 99
  638. #define CMD_IMGCTRL_BA80 100
  639. #define CMD_SELECT_PAPER_A2TOA3 101
  640. #define CMD_SET_TEXTRECT_W 102
  641. #define CMD_SET_TEXTRECT_H 103
  642. #define CMD_DRAW_TEXTRECT 104
  643. #define CMD_CR 105
  644. #define CMD_LF 106
  645. #define CMD_BS 107
  646. #define CMD_DRV_2IN1_67 108
  647. #define CMD_DRV_2IN1_100 109
  648. #define CMD_BEGINDOC_NX100 110
  649. #define CMD_IMGCTRL_BA115 111
  650. #define CMD_BEGINDOC_NX500 112
  651. #define CMD_DL_SET_FONT_ID 113
  652. #define CMD_DL_SELECT_FONT_ID 114
  653. #define CMD_SELECT_PAPER_DOUBLEPOSTCARD 115
  654. //#define CMD_BEGINDOC_MFP250E 116
  655. #define CMD_BEGINDOC_MF250M 117
  656. #define CMD_BEGINDOC_MF3550 118
  657. #define CMD_SELECT_MULTITRAY 119
  658. #define CMD_IMGCTRL_100 120 // These 11 IDs must be in this order.
  659. #define CMD_IMGCTRL_88 121 //
  660. #define CMD_IMGCTRL_80 122 //
  661. #define CMD_IMGCTRL_75 123 //
  662. #define CMD_IMGCTRL_70 124 //
  663. #define CMD_IMGCTRL_67 125 //
  664. #define CMD_IMGCTRL_115 126 //
  665. #define CMD_IMGCTRL_122 127 //
  666. #define CMD_IMGCTRL_141 128 //
  667. #define CMD_IMGCTRL_200 129 //
  668. #define CMD_IMGCTRL_50 130 //
  669. #define CMD_DRV_4IN1_50 131
  670. #define CMD_BEGINDOC_MF200 132 // @Sep/01/98
  671. #define CMD_SELECT_PAPER_A2 133
  672. #define CMD_SELECT_PAPER_C 134
  673. #define CMD_BEGINDOC_MF3300 135
  674. #define CMD_COMPRESS_OFF 136 // MSKK
  675. #define CMD_BEGINDOC_IP1 137
  676. #define CMD_SELECT_ROLL1 138
  677. #define CMD_SELECT_ROLL2 139
  678. #define CMD_IMGCTRL_AA141 140
  679. #define CMD_IMGCTRL_AA200 141
  680. #define CMD_IMGCTRL_AA283 142
  681. #define CMD_IMGCTRL_A1_400 143
  682. #define CMD_IMGCTRL_283 144
  683. #define CMD_IMGCTRL_400 145
  684. #define CMD_MEDIATYPE_STANDARD 146
  685. #define CMD_MEDIATYPE_OHP 147
  686. #define CMD_MEDIATYPE_THICK 148
  687. #define CMD_REGION_STANDARD 149
  688. #define CMD_REGION_EDGE2EDGE 150
  689. #define CMD_SELECT_STAPLE_NONE 151
  690. #define CMD_SELECT_STAPLE_1 152
  691. #define CMD_SELECT_STAPLE_2 153
  692. #define CMD_SELECT_PUNCH_NONE 154
  693. #define CMD_SELECT_PUNCH_1 155
  694. #define CMD_DRAW_TEXTRECT_REL 156
  695. #define CMD_DL_SET_FONT_GLYPH 157
  696. #define CMD_SET_MEM0KB 158
  697. #define CMD_SET_MEM128KB 159
  698. #define CMD_SET_MEM256KB 160
  699. #define CMD_SET_MEM512KB 161
  700. #define CMD_BEGINDOC_NX70 164
  701. #define CMD_SELECT_PAPER_B3 165
  702. #define CMD_SELECT_PAPER_A3TOA4 166
  703. #define CMD_SELECT_PAPER_B4TOA4 167
  704. #define CMD_SELECT_PAPER_POSTCARD 168
  705. #define CMD_SET_BASEOFFSETX_0 169
  706. #define CMD_SET_BASEOFFSETX_1 170
  707. #define CMD_SET_BASEOFFSETX_2 171
  708. #define CMD_SET_BASEOFFSETX_3 172
  709. #define CMD_SET_BASEOFFSETX_4 173
  710. #define CMD_SET_BASEOFFSETX_5 174
  711. #define CMD_SET_BASEOFFSETY_0 175
  712. #define CMD_SET_BASEOFFSETY_1 176
  713. #define CMD_SET_BASEOFFSETY_2 177
  714. #define CMD_SET_BASEOFFSETY_3 178
  715. #define CMD_SET_BASEOFFSETY_4 179
  716. #define CMD_SET_BASEOFFSETY_5 180
  717. #define CMD_SET_LONG_EDGE_FEED 181
  718. #define CMD_SET_SHORT_EDGE_FEED 182
  719. #define CMD_OEM_COMPRESS_ON 183
  720. #define CMD_SET_SRCBMP_W 184
  721. #define CMD_SET_SRCBMP_H 185
  722. #define CMD_BEGINDOC_NX700 186
  723. #define CMD_SET_COLLATE_OFF 187
  724. #define CMD_SET_COLLATE_ON 188
  725. #define CMD_SELECT_COLLATE_UNIDIR 189
  726. #define CMD_SELECT_COLLATE_ROTATED 190
  727. #define CMD_DRAW_TEXTRECT_WHITE 191 // MSKK Aug/14/98
  728. #define CMD_DRAW_TEXTRECT_WHITE_REL 192
  729. #define CMD_SELECT_COLLATE_SHIFTED 193
  730. #define CMD_BEGINDOC_NX900 194
  731. #define CMD_BEGINDOC_NX800 195 // <- CMD_BEGINDOC_MF1530 @Jun/25/2001
  732. #define CMD_MEDIATYPE_SPL 196
  733. #define CMD_RES1200 197
  734. #define CMD_SELECT_STAPLE_MAX1 198
  735. #define CMD_SELECT_PAPER_11x15TOA4 199 // @Jan/27/2000
  736. #define CMD_SELECT_TRAY1 200 // These 5 IDs must be in this order.
  737. #define CMD_SELECT_TRAY2 201 //
  738. #define CMD_SELECT_TRAY3 202 //
  739. #define CMD_SELECT_TRAY4 203 //
  740. #define CMD_SELECT_TRAY5 204 //
  741. #define CMD_MEDIATYPE_TRACE 205 // @Feb/15/2000
  742. #define CMD_BEGINDOC_NX710 206 // @Jun/23/2000
  743. #define CMD_BEGINDOC_NX720 207 // @Sep/26/2000
  744. #define CMD_MEDIATYPE_LABEL 208 // @Oct/12/2000
  745. #define CMD_MEDIATYPE_THIN 209 // @Feb/05/2001
  746. // v1.07 ->
  747. #define CMD_SELECT_FINISHER_TRAY2 210 // @Jun/25/2001
  748. #define CMD_BEGINDOC_MF3530E 211
  749. #endif // _PDEV_H