/*++ Copyright (c) 1997-1999 Microsoft Corporation --*/ #ifndef _PDEV_H #define _PDEV_H // LIPS4MS.H // The description of LIPS Device font // Due to register device fonts before using, and we can't know // all fonts driver has, this header file must know all font of // LIPS to download the facename. // Jan. 1st, 1995 Hitoshi Sekine // NTRAID#NTBUG9-550215-2002/03/07-yasuho-: Use strsafe.h // NTRAID#NTBUG9-568220-2002/03/07-yasuho-: Remove the dead code #include #include #include #include #define VALID_PDEVOBJ(pdevobj) \ ((pdevobj) && (pdevobj)->dwSize >= sizeof(DEVOBJ) && \ (pdevobj)->hEngine && (pdevobj)->hPrinter && \ (pdevobj)->pPublicDM && (pdevobj)->pDrvProcs ) #define ASSERT_VALID_PDEVOBJ(pdevobj) ASSERT(VALID_PDEVOBJ(pdevobj)) // Debug text. #define ERRORTEXT(s) __TEXT("ERROR ") DLLTEXT(s) // // OEM Signature and version. // #define OEM_SIGNATURE 'CNL4' // Canon LIPS4 series dll #define DLLTEXT(s) __TEXT("CNL4: ") __TEXT(s) #define OEM_VERSION 0x00010000L //*************************************************** // general current status table //*************************************************** typedef unsigned char uchar; //*************************************************** // LIPS current status table //*************************************************** typedef struct tagLIPSFDV { short FontHeight; // Y (dots) in SendScalableFontCmd() short FontWidth; // X (dots) in SendScalableFontCmd() short MaxWidth; short AvgWidth; short Ascent; short Stretch; // Width extension factor } LIPSFDV, FAR * LPLIPSFDV; //////////////////////////////////////////////////////// // OEM UD Type Defines //////////////////////////////////////////////////////// typedef struct tag_OEMUD_EXTRADATA { OEM_DMEXTRAHEADER dmExtraHdr; } OEMUD_EXTRADATA, *POEMUD_EXTRADATA; // NTRAID#NTBUG9-98276-2002/03/07-yasuho-: Support Color Bold typedef struct _COLORVALUE { DWORD dwRed, dwGreen, dwBlue; } COLORVALUE; // NTRAID#NTBUG-289908-2002/03/07-yasuho-: pOEMDM -> pdevOEM typedef struct tag_LIPSPDEV { // private data as follows // short widthbuffer[256]; // buffer for device propotional character // Flags char fbold; // uses Ornamented Character char fitalic; // uses Char Orientatoin char fwhitetext; // White Text mode char fdoublebyte; // DBCS char mode char fvertical; // Vertical writing mode char funderline; char fstrikesthu; char fpitch; char flpdx; // for only lpDx mode of ExtTextOut() char f1stpage; char fcompress; // 0x30 (no comp), 0x37 (method 1), or 0x3b (tiff) // features specific to LIPS4 char flips4; char fduplex; // on or off (default) char fduplextype; // vertical or horisontal char fsmoothing; // device setting, on or off char fecono; // device setting, on or off char fdithering; // device setting, on or off #ifdef LBP_2030 char fcolor; short fplane; short fplaneMax; #endif #ifdef LIPS4C char flips4C; #endif // Variables POINT ptCurrent; // absolute position by cursor command POINT ptInLine; // absolute position on Inline char bLogicStyle; char savechar; // for only lpDx mode of ExtTextOut() short printedchars; // total number of printed characters long stringwidth; // total width of printed propotional character char firstchar; // first character code of the pfm char lastchar; // last character code of the pfm uchar curFontGrxIds[8]; // G0 T, G1 m, G2 n, G3 o of font indeies // G0 ], G1 `, G2 a, G3 b of Graphic Set indeies // for GetFontCmd(), in PFM data LIPSFDV tblPreviousFont; // font attribute of printer setting LIPSFDV tblCurrentFont; // font attribute of driver setting char OrnamentedChar[5]; // }^ Bold sumilation // 1-Pattern, 2-Outline, 3-Rotation, 4-Mirror, 5-Negative // 2-Outline // < 48 points -> -2 (3 dots) // < 96 points -> -3 (5 dots) // 96 =< points -> -4 (7 dots) char TextPath; // [ Vertical Writing or Horisontal Writing short CharOrientation[4]; // Z Italic sumilation // short CharExpansionFactor; // V for only ZapfChancery ??? char GLTable; // takes 0 (g0), 1 (g1), 2 (g2), 3 (g3) or -1 (none) char GRTable; // takes 0 (g0), 1 (g1), 2 (g2), 3 (g3) or -1 (none) unsigned char cachedfont; // font id of cached font char papersize; // PaperSize ID char currentpapersize; // PaperSize ID in printer // NTRAID#NTBUG9-254925-2002/03/07-yasuho-: CUSTOM papers. DWORD dwPaperWidth; DWORD dwPaperHeight; short Escapement; // Print direction (0 - 360) short resolution; // resolution (600, 300, 150dpi) // LIPS4C: (360, 180dpi) short unitdiv; // 600 / resolution (600 - 1, 300 - 2, 150 - 4) // LIPS4C: (360 = 1, 180 = 2) // Lips4 feature char nxpages; // 2xLeft, 2xRight, 4xLeft, 4xRight // short widthbuffer[256]; // buffer for device propotional character short sPenColor; short sPenWidth; short sBrushStyle; short sPenStyle; unsigned short fVectCmd; unsigned short wCurrentImage; // // NTRAID#NTBUG-185776-2002/03/07-yasuho-: Some objects doesn't print // Any buffer doesn't enough to print the long strings. // #define MAX_GLYPHLEN 512 WCHAR aubBuff[MAX_GLYPHLEN]; LONG widBuf[MAX_GLYPHLEN]; // NTRAID#NTBUG-185762-2002/03/07-yasuho-: Tilde isn't printed WCHAR uniBuff[MAX_GLYPHLEN]; // NTRAID#NTBUG-195162-2002/03/07-yasuho-: Color font incorrectly // NTRAID#NTBUG9-185185-2002/03/07-yasuho-: Support RectFill LONG RectWidth; LONG RectHeight; // NTRAID#NTBUG9-213732-2002/03/07-yasuho-: 1200dpi support LONG masterunit; // NTRAID#NTBUG-228625-2002/03/07-yasuho-: Stacker support char tray; // Output tray: 0:auto, 1-N:binN, // 100:default, 101:subtray char method; // Output method: 0:JOB-OFFSET, 1:Staple, 2:Face up char staple; // Staple mode: 0:TOPEFT, ... 9:BOTRIGHT // NTRAID#NTBUG-399861-2002/03/07-yasuho-: Orientation does not changed. char source; // Paper sources: 0:auto, 1:manual, 11:upper, 12:lower // Support DRC DWORD dwBmpWidth; DWORD dwBmpHeight; // NTRAID#NTBUG9-98276-2002/03/07-yasuho-: Support Color Bold #if defined(LBP_2030) || defined(LIPS4C) // Remember current color to specify outline color. DWORD dwCurIndex, dwOutIndex; COLORVALUE CurColor, OutColor; #endif // LBP_2030 || LIPS4C // NTRAID#NTBUG9-172276-2002/03/07-yasuho-: CPCA support char fCPCA; // Model which supported CPCA architecture. // NTRAID#NTBUG9-278671-2002/03/07-yasuho-: Finisher !work char fCPCA2; // for iR5000-6000 #define CPCA_PACKET_SIZE 20 BYTE CPCAPKT[CPCA_PACKET_SIZE]; // CPCA Packet template buffer. #define CPCA_BUFFER_SIZE 512 BYTE CPCABuf[CPCA_BUFFER_SIZE]; // CPCA Packet cache buffer. DWORD CPCABcount; // NTRAID#NTBUG9-172276-2002/03/07-yasuho-: Sorter support char sorttype; // Sort method: 0:sort, 1:stack, 2:group WORD copies; // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. char startbin; // Start bin // NTRAID#NTBUG9-501162-2002/03/07-yasuho-: Collate does not work char collate; // Collate: 1:on, 0:off } LIPSPDEV, *PLIPSPDEV; //*************************************************** // below the definitions of structure from PFM.H //*************************************************** typedef struct { SIZEL sizlExtent; POINTFX pfxOrigin; POINTFX pfxCharInc; } BITMAPMETRICS, FAR * LPBITMAPMETRICS; typedef BYTE FAR * LPDIBITS; typedef struct { short dfType; short dfPoints; short dfVertRes; short dfHorizRes; short dfAscent; short dfInternalLeading; short dfExternalLeading; BYTE dfItalic; BYTE dfUnderline; BYTE dfStrikeOut; short dfWeight; BYTE dfCharSet; short dfPixWidth; short dfPixHeight; BYTE dfPitchAndFamily; short dfAvgWidth; short dfMaxWidth; BYTE dfFirstChar; BYTE dfLastChar; BYTE dfDefaultChar; BYTE dfBreakChar; short dfWidthBytes; DWORD dfDevice; DWORD dfFace; DWORD dfBitsPointer; DWORD dfBitsOffset; BYTE dfReservedByte; } PFMHEADER, * PPFMHEADER, far * LPPFMHEADER; //*************************************************** // Defines //*************************************************** #define OVER_MODE 0 #define OR_MODE 1 #define AND_MODE 3 #define INIT -1 #define FIXED 0 #define PROP 1 #define DEVICESETTING 0 #define VERT 2 #define HORZ 4 // NTRAID#NTBUG9-228625-2002/03/07-yasuho-: Stacker support #define METHOD_JOBOFFSET 1 #define METHOD_STAPLE 2 #define METHOD_FACEUP 3 // NTRAID#NTBUG9-172276-2002/03/07-yasuho-: Sorter support #define SORTTYPE_SORT 1 #define SORTTYPE_STACK 2 // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. #define SORTTYPE_GROUP 3 #define SORTTYPE_STAPLE 4 // NTRAID#NTBUG9-501162-2002/03/07-yasuho-: Collate does not work #define COLLATE_ON 1 #define COLLATE_OFF 0 // Support DRC #ifdef LBP_2030 #define COLOR 1 #define COLOR_24BPP 2 #define COLOR_8BPP 4 #define MONOCHROME 0 #endif typedef struct tagLIPSCmd { WORD cbSize; PBYTE pCmdStr; } LIPSCmd, FAR * LPLIPSCmd; #ifdef LIPS4_DRIVER //*************************************************** // LIPS command lists //*************************************************** LIPSCmd cmdPJLTOP1 = { 23, "\x1B%-12345X@PJL CJLMODE\x0D\x0A"}; LIPSCmd cmdPJLTOP2 = { 10, "@PJL JOB\x0D\x0A"}; // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. BYTE cmdPJLBinSelect[] = "@PJL SET BIN-SELECT = %s\r\n"; PBYTE cmdBinType[] = { "AUTO", "OUTTRAY1", "OUTTRAY2", "BIN1", "BIN2", "BIN3", }; // NTRAID#NTBUG9-213732-2002/03/07-yasuho-: 1200dpi support LIPSCmd cmdPJLTOP3SUPERFINE= { 33, "@PJL SET RESOLUTION = SUPERFINE\x0D\x0A"}; LIPSCmd cmdPJLTOP3FINE = { 28, "@PJL SET RESOLUTION = FINE\x0D\x0A"}; LIPSCmd cmdPJLTOP3QUICK = { 29, "@PJL SET RESOLUTION = QUICK\x0D\x0A"}; // NTRAID#NTBUG9-228625-2002/03/07-yasuho-: Stacker support LIPSCmd cmdPJLTOP31JOBOFF = { 26, "@PJL SET JOB-OFFSET = ON\x0D\x0A"}; LIPSCmd cmdPJLTOP31STAPLE = { 23, "@PJL SET STAPLE-MODE = "}; // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. BYTE cmdPJLSorting[] = "@PJL SET SORTING = %s\r\n"; PBYTE cmdSortType[] = { "SORT", "GROUP", "STAPLE", }; BYTE cmdPJLStartBin[] = "@PJL SET START-BIN = %d\r\n"; LIPSCmd cmdPJLTOP4 = { 33, "@PJL SET LPARAM : LIPS SW2 = ON\x0D\x0A"}; LIPSCmd cmdPJLTOP5 = { 28, "@PJL ENTER LANGUAGE = LIPS\x0D\x0A"}; LIPSCmd cmdPJLBOTTOM1 = { 42, "\x1B%-12345X@PJL SET LPARM : LIPS SW2 = OFF\x0D\x0A"}; LIPSCmd cmdPJLBOTTOM2 = { 19, "@PJL EOJ\x0D\x0A\x1B%-12345X"}; // If send this command, White Bold character can be printed. But I don't // know what command means. LIPSCmd cmdWhiteBold = { 9, "}S1\x1E}RF4\x1E"}; #ifdef LIPS4C LIPSCmd cmdBeginDoc4C = { 16, "\x1B%@\x1BP41;360;1J\x1B\\"}; LIPSCmd cmdColorMode4C = { 7, "\x1B[1\"p\x1B<"}; LIPSCmd cmdMonochrome4C = { 7, "\x1B[0\"p\x1B<"}; LIPSCmd cmdPaperSource4C = { 4, "\x1B[0q"}; // AutoSheetFeeder LIPSCmd cmdBeginPicture4C = { 7, "\x1E#\x1E!0!2"}; LIPSCmd cmdTextClip4C = { 9, "\x1E}y!2\x1EU2\x1E"}; #endif // LIPS4C #if defined(LIPS4C) || defined(LBP_2030) LIPSCmd cmdEndDoc4C = { 11, "%\x1E}p\x1E\x1BP0J\x1B\\"}; #endif // NTRAID#NTBUG9-213732-2002/03/07-yasuho-: 1200dpi support // NTRAID#NTBUG9-209691-2002/03/07-yasuho-: Inappropriately command. LIPSCmd cmdBeginDoc1200 = { 31, "\x1B%@\x1BP41;1200;1JMS NT40 4/1200\x1B\\"}; LIPSCmd cmdBeginDoc600 = { 29, "\x1B%@\x1BP41;600;1JMS NT40 4/600\x1B\\"}; LIPSCmd cmdBeginDoc3004 = { 29, "\x1B%@\x1BP41;300;1JMS NT40 4/300\x1B\\"}; LIPSCmd cmdBeginDoc300 = { 29, "\x1B%@\x1BP31;300;1JMS NT40 3/300\x1B\\"}; LIPSCmd cmdBeginDoc150 = { 29, "\x1B%@\x1BP31;300;1JMS NT40 3/150\x1B\\"}; LIPSCmd cmdSoftReset = { 2, "\x1B<"}; LIPSCmd cmdEndPage = { 6, "\x0C%\x1E}p\x1E"}; LIPSCmd cmdEndDoc4 = { 6, "\x1BP0J\x1B\\"}; // LIPSCmd cmdBeginPicture600 = { 9, "\x1E#\x1E!0\x65\x38\x1E$"}; // NTRAID#NTBUG9-213732-2002/03/07-yasuho-: 1200dpi support LIPSCmd cmdBeginPicture1200= { 8, "\x1E#\x1E!0AK0"}; #ifndef LBP_2030 LIPSCmd cmdBeginPicture600 = { 9, "\x1E#\x1E!0e8\x1E$"}; LIPSCmd cmdBeginPicture = { 8, "\x1E#\x1E!0#\x1E$"}; #else // NTRAID#NTBUG9-209706-2002/03/07-yasuho-: // Incorrect cursor move unit command. LIPSCmd cmdBeginPicture600 = { 7, "\x1E#\x1E!0e8"}; LIPSCmd cmdBeginPicture = { 6, "\x1E#\x1E!0#"}; LIPSCmd cmdEnterPicture = { 2, "\x1E$"}; #endif // LIPSCmd cmdTextClip600 = {10, "\x1E}Y\x65\x381\x1EU2\x1E"}; // NTRAID#NTBUG9-213732-2002/03/07-yasuho-: 1200dpi support LIPSCmd cmdTextClip1200 = {11, "\x1E}YAK01\x1EU2\x1E"}; LIPSCmd cmdTextClip600 = {10, "\x1E}Ye81\x1EU2\x1E"}; LIPSCmd cmdTextClip = { 9, "\x1E}Y#1\x1EU2\x1E"}; LIPSCmd cmdEndPicture = { 5, "%\x1E}p\x1E"}; #ifdef LBP_2030 // NTRAID#NTBUG9-209691-2002/03/07-yasuho-: Inappropriately commands. LIPSCmd cmdBeginDoc4_2030 = { 16, "\x1B%@\x1BP41;300;1J\x1B\\"}; LIPSCmd cmdColorMode = { 5, "\x1B[1\"p"}; LIPSCmd cmdMonochrome = { 5, "\x1B[0\"p"}; LIPSCmd cmdColorRGB = { 4, "\x1E!11"}; LIPSCmd cmdColorIndex = { 4, "\x1E!10"}; #endif // N x Pages LIPSCmd cmdx1Page = { 5, "\x1B[;;o"}; // NTRAID#NTBUG9-254925-2002/03/07-yasuho-: CUSTOM papers. BYTE cmdxnPageX[] = "\x1B[%d;;%do"; // Duplex LIPSCmd cmdDuplexOff = { 5, "\x1B[0#x"}; LIPSCmd cmdDuplexOn = { 7, "\x1B[2;0#x"}; LIPSCmd cmdDupLong = { 7, "\x1B[0;0#w"}; LIPSCmd cmdDupShort = { 7, "\x1B[2;0#w"}; // NTRAID#NTBUG9-228625-2002/03/07-yasuho-: Stacker support LIPSCmd cmdStapleModes[] = { { 7, "TOPLEFT" }, // 0 { 9, "TOPCENTER" }, // 1 { 8, "TOPRIGHT" }, // 2 { 7, "MIDLEFT" }, // 3 { 9, "MIDCENTER" }, // 4 { 8, "MIDRIGHT" }, // 5 { 7, "BOTLEFT" }, // 6 { 9, "BOTCENTER" }, // 7 { 8, "BOTRIGHT" }, // 8 }; // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. BYTE cmdPaperSource[] = "\x1B[%dq"; //*************************************************** // Command Call Back IDs //*************************************************** #define OCD_BEGINDOC 1 #define OCD_BEGINDOC4 100 // to check LIPS4 printer (730) // NTRAID#NTBUG9-213732-2002/03/07-yasuho-: 1200dpi support #define OCD_BEGINDOC4_1200 120 // NTRAID#NTBUG9-172276-2002/03/07-yasuho-: CPCA support #define OCD_BEGINDOC4_1200_CPCA 121 // NTRAID#NTBUG9-278671-2002/03/07-yasuho-: Finisher !work #define OCD_BEGINDOC4_1200_CPCA2 122 #ifdef LBP_2030 #define OCD_BEGINDOC4_2030 101 // to check LIPS4 printer (730) #define OCD_ENDDOC4_2030 102 // NTRAID#NTBUG9-172276-2002/03/07-yasuho-: CPCA support #define OCD_BEGINDOC4_2030_CPCA 104 #endif #ifdef LIPS4C #define OCD_BEGINDOC4C 301 #endif // LIPS4C #if defined(LIPS4C) || defined(LBP_2030) // NTRAID#NTBUG-137462-2002/03/07-yasuho-: 'X000' is printed. #define OCD_BEGINPAGE4C 302 #define OCD_ENDPAGE4C 303 #define OCD_ENDDOC4C 304 #endif // NTRAID#NTBUG9-304284-2002/03/07-yasuho-: Duplex isn't effective #define OCD_STARTDOC 130 #define OCD_PORTRAIT 2 #define OCD_LANDSCAPE 3 #define OCD_PRN_DIRECTION 4 #define OCD_ENDPAGE 5 #define OCD_ENDDOC4 99 #define OCD_BEGINPAGE 6 #define RES_SENDBLOCK 7 // NTRAID#NTBUG9-213732-2002/03/07-yasuho-: 1200dpi support #define SELECT_RES_1200 108 #define SELECT_RES_600 8 #define SELECT_RES_300 9 #define SELECT_RES_150 10 #ifdef LIPS4C #define SELECT_RES4C_360 308 #endif // LIPS4C #define BEGIN_COMPRESS 11 #define BEGIN_COMPRESS_TIFF 103 #define END_COMPRESS 12 #define CUR_XM_ABS 15 #define CUR_YM_ABS 16 #define CUR_XY_ABS 17 #define CUR_CR 18 #define OCD_BOLD_ON 20 #define OCD_BOLD_OFF 21 #define OCD_ITALIC_ON 22 #define OCD_ITALIC_OFF 23 #define OCD_UNDERLINE_ON 24 #define OCD_UNDERLINE_OFF 25 #define OCD_DOUBLEUNDERLINE_ON 26 #define OCD_DOUBLEUNDERLINE_OFF 27 #define OCD_STRIKETHRU_ON 28 #define OCD_STRIKETHRU_OFF 29 #define OCD_WHITE_TEXT_ON 30 #define OCD_WHITE_TEXT_OFF 31 #define OCD_SINGLE_BYTE 32 #define OCD_DOUBLE_BYTE 33 #define OCD_VERT_ON 34 #define OCD_VERT_OFF 35 #define CUR_XM_REL 36 #define CUR_YM_REL 37 #define OCD_DUPLEX_ON 13 #define OCD_DUPLEX_VERT 14 #define OCD_DUPLEX_HORZ 19 #define OCD_PAPERQUALITY_2XL 38 #define OCD_PAPERQUALITY_2XR 39 #define OCD_PAPERQUALITY_4XL 70 #define OCD_PAPERQUALITY_4XR 71 #define OCD_TEXTQUALITY_ON 72 #define OCD_TEXTQUALITY_OFF 73 #define OCD_PRINTDENSITY_ON 74 #define OCD_PRINTDENSITY_OFF 75 #define OCD_IMAGECONTROL_ON 76 #define OCD_IMAGECONTROL_OFF 77 #ifdef LBP_2030 #define OCD_SETCOLORMODE 200 #define OCD_SETCOLORMODE_24BPP 201 #define OCD_SETCOLORMODE_8BPP 202 #endif // NTRAID#NTBUG9-98276-2002/03/07-yasuho-: Support Color Bold #define OCD_SELECTBLACK 360 #define OCD_SELECTBLUE 361 #define OCD_SELECTGREEN 362 #define OCD_SELECTCYAN 363 #define OCD_SELECTRED 364 #define OCD_SELECTMAGENTA 365 #define OCD_SELECTYELLOW 366 #define OCD_SELECTWHITE 367 #define OCD_SELECTPALETTE 368 #define OCD_SELECTCOLOR 369 // NTRAID#NTBUG-185185-2002/03/07-yasuho-: Support RectFill #define OCD_SETRECTWIDTH 401 #define OCD_SETRECTHEIGHT 402 #define OCD_RECTWHITEFILL 403 #define OCD_RECTBLACKFILL 404 // NTRAID#NTBUG9-228625-2002/03/07-yasuho-: Stacker support // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. // NOTE: Do not reorder between OCD_TOPLEFT and OCD_BOTRIGHT #define OCD_TRAY_AUTO 410 #define OCD_TRAY_BIN1 411 #define OCD_TRAY_BIN2 412 #define OCD_TRAY_BIN3 413 #define OCD_TRAY_BIN4 414 #define OCD_TRAY_BIN5 415 #define OCD_TRAY_BIN6 416 #define OCD_TRAY_BIN7 417 #define OCD_TRAY_BIN8 418 #define OCD_TRAY_BIN9 419 #define OCD_TRAY_BIN10 420 #define OCD_TRAY_DEFAULT 428 #define OCD_TRAY_SUBTRAY 429 // NOTE: Do not reorder between OCD_TOPLEFT and OCD_BOTRIGHT #define OCD_TOPLEFT 430 #define OCD_TOPCENTER 431 #define OCD_TOPRIGHT 432 #define OCD_MIDLEFT 433 #define OCD_MIDCENTER 434 #define OCD_MIDRIGHT 435 #define OCD_BOTLEFT 436 #define OCD_BOTCENTER 437 #define OCD_BOTRIGHT 438 // NTRAID#NTBUG9-399861-2002/03/07-yasuho-: Orientation does not changed. // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. // NOTE: DO NOT REORDER following values easier. #define OCD_SOURCE_AUTO 450 #define OCD_SOURCE_CASSETTE1 451 // Upper #define OCD_SOURCE_CASSETTE2 452 // Middle #define OCD_SOURCE_CASSETTE3 453 // Lower #define OCD_SOURCE_CASSETTE4 454 #define OCD_SOURCE_ENVELOPE 458 #define OCD_SOURCE_MANUAL 459 // NTRAID#NTBUG9-172276-2002/03/07-yasuho-: Sorter support #define OCD_SORT 460 #define OCD_STACK 461 // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. #define OCD_GROUP 462 #define OCD_SORT_STAPLE 463 // special for MEDIO-B1 #define OCD_COPIES 465 // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. #define OCD_JOBOFFSET 470 #define OCD_STAPLE 471 #define OCD_FACEUP 472 // NTRAID#NTBUG9-293002-2002/03/07-yasuho-: // Features are different from H/W options. // NOTE: DO NOT REORDER following values easier. #define OCD_STARTBIN0 480 #define OCD_STARTBIN1 481 #define OCD_STARTBIN2 482 #define OCD_STARTBIN3 483 #define OCD_STARTBIN4 484 #define OCD_STARTBIN5 485 #define OCD_STARTBIN6 486 #define OCD_STARTBIN7 487 #define OCD_STARTBIN8 488 #define OCD_STARTBIN9 489 #define OCD_STARTBIN10 490 // Support DRC #define BEGIN_COMPRESS_DRC 510 #define OCD_SETBMPWIDTH 511 #define OCD_SETBMPHEIGHT 512 // NTRAID#NTBUG9-501162-2002/03/07-yasuho-: Collate does not work #define OCD_COLLATE_ON 521 #define OCD_COLLATE_OFF 522 //************************* // Paper Selection ID list // \x1B[;;p //************************* // NTRAID#NTBUG9-254925-2002/03/07-yasuho-: CUSTOM papers. BYTE cmdSelectPaper[] = "\x1B[%d;;p"; BYTE cmdSelectUnit4[] = "\x1B[?7;%d I"; BYTE cmdSelectUnit3[] = "\x1B[7 I"; BYTE cmdSelectCustom[] = "\x1B[%d;%d;%dp"; /* The definitions for Page Format command */ #define PAPER_DEFAULT 44 /* 14 : A4 210 x 297 mm */ #define PAPER_FIRST 40 /* */ #define PAPER_PORT 40 /* 0 : Portlait */ #define PAPER_LAND 41 /* 1 : Landscape */ #define PAPER_A3 42 /* 12 : A3 297 x 420 mm */ #define PAPER_A3_LAND 43 /* 13 : A3 Landscape 420 x 297 mm */ #define PAPER_A4 44 /* 14 : A4 210 x 297 mm */ #define PAPER_A4_LAND 45 /* 15 : A4 Landscape 297 x 210 mm */ #define PAPER_A5 46 /* 16 : A5 148 x 210 mm */ #define PAPER_A5_LAND 47 /* 17 : A5 Landscape 210 x 148 mm */ #define PAPER_POSTCARD 48 /* 18 : Japanese Postcard 100 x 148 mm */ #define PAPER_POSTCARD_LAND 49 /* 19 : Japanese Postcard Landscape */ #define PAPER_B4 50 /* 24 : B4 (JIS) 257 x 364 mm */ #define PAPER_B4_LAND 51 /* 25 : B4 (JIS) Landscape 364 x 257 mm */ #define PAPER_B5 52 /* 26 : B5 (JIS) 182 x 257 mm */ #define PAPER_B5_LAND 53 /* 27 : B5 (JIS) Landscape 257 x 182 mm */ #define PAPER_B6 54 /* 28 : B6 (JIS) 128 x 182 mm */ #define PAPER_B6_LAND 55 /* 29 : B6 (JIS) Landscape 182 x 128 mm */ #define PAPER_LETTER 56 /* 30 : Letter 8 1/2 x 11 in */ #define PAPER_LETTER_LAND 57 /* 31 : Letter Landscape 11 x 8 1/2 in */ #define PAPER_LEGAL 58 /* 32 : Legal 8 1/2 x 14 in */ #define PAPER_LEGAL_LAND 59 /* 33 : Legal Landscape 14 x 8 1/2 in */ #define PAPER_TABLOID 60 /* 34 : Tabloid 11 x 17 in */ #define PAPER_TABLOID_LAND 61 /* 35 : Tabloid Landscape 17 x 11 in */ #define PAPER_EXECUTIVE 62 /* 40 : Executive 7 1/4 x 10 1/2 in */ #define PAPER_EXECUTIVE_LAND 63 /* 41 : Executive Landscape */ #define PAPER_JENV_YOU4 64 /* 50 : Japanese Envelope You #4 */ #define PAPER_JENV_YOU4_LAND 65 /* 51 : Japanese Envelope You #4 Landscape */ // NTRAID#NTBUG9-350602-2002/03/07-yasuho-: Support new models for RC2 #define PAPER_DBL_POST 66 /* 20 : Japanese Double Postcard */ #define PAPER_DBL_POST_LAND 67 /* 21 : Japanese Double Postcard Landscape */ #define PAPER_JENV_YOU2 68 /* 52 : Japanese Envelope You #2 */ #define PAPER_JENV_YOU2_LAND 69 /* 53 : Japanese Envelope You #2 Landscape */ #define PAPER_LAST 69 /* */ // Carousel #define CAR_SET_PEN_COLOR 78 //Brush 50 #define BRUSH_SELECT 79 #define BRUSH_BYTE_2 80 #define BRUSH_END_1 81 #define BRUSH_NULL 82 #define BRUSH_SOLID 83 #define BRUSH_HOZI 84 #define BRUSH_VERT 85 #define BRUSH_FDIAG 86 #define BRUSH_BDIAG 87 #define BRUSH_CROSS 88 #define BRUSH_DIACROSS 89 #define PEN_NULL 90 #define PEN_SOLID 91 #define PEN_DASH 92 #define PEN_DOT 93 #define PEN_DASHDOT 94 #define PEN_DASHDOTDOT 95 #define PEN_WIDTH 96 #define VECT_INIT 97 #define PENCOLOR_WHITE 0 #define PENCOLOR_BLACK 1 #define SET_PEN 0 #define SET_BRUSH 1 #define VFLAG_PEN_NULL 0x01 #define VFLAG_BRUSH_NULL 0x02 #define VFLAG_INIT_DONE 0x04 #define VFLAG_VECT_MODE_ON 0x08 // NTRAID#NTBUG9-254925-2002/03/07-yasuho-: CUSTOM papers. // All paper IDs int PaperIDs[PAPER_LAST - PAPER_FIRST + 1] = { { 0 }, /* PAPER_PORT 40 : 0 : Portlait */ { 1 }, /* PAPER_LAND 41 : 1 : Landscape */ { 12 }, /* PAPER_A3 42 : 12 : A3 297 x 420 mm */ { 13 }, /* PAPER_A3_LAND 43 : 13 : A3 Landscape 420 x 297 mm */ { 14 }, /* PAPER_A4 44 : 14 : A4 210 x 297 mm */ { 15 }, /* PAPER_A4_LAND 45 : 15 : A4 Landscape 297 x 210 mm */ { 16 }, /* PAPER_A5 46 : 16 : A5 148 x 210 mm */ { 17 }, /* PAPER_A5_LAND 47 : 17 : A5 Landscape 210 x 148 mm */ { 18 }, /* PAPER_POSTCARD 48 : 18 : Japanese Postcard 100 x 148 mm */ { 19 }, /* PAPER_POSTCARD_LAND 49 : 19 : Japanese Postcard Landscape */ { 24 }, /* PAPER_B4 50 : 24 : B4 (JIS) 257 x 364 mm */ { 25 }, /* PAPER_B4_LAND 51 : 25 : B4 (JIS) Landscape 364 x 257 mm */ { 26 }, /* PAPER_B5 52 : 26 : B5 (JIS) 182 x 257 mm */ { 27 }, /* PAPER_B5_LAND 53 : 27 : B5 (JIS) Landscape 257 x 182 mm */ { 28 }, /* PAPER_B6 54 : 28 : B6 (JIS) 128 x 182 mm */ { 29 }, /* PAPER_B6_LAND 55 : 29 : B6 (JIS) Landscape 182 x 128 mm */ { 30 }, /* PAPER_LETTER 56 : 30 : Letter 8 1/2 x 11 in */ { 31 }, /* PAPER_LETTER_LAND 57 : 31 : Letter Landscape 11 x 8 1/2 in */ { 32 }, /* PAPER_LEGAL 58 : 32 : Legal 8 1/2 x 14 in */ { 33 }, /* PAPER_LEGAL_LAND 59 : 33 : Legal Landscape 14 x 8 1/2 in */ { 34 }, /* PAPER_TABLOID 60 : 34 : Tabloid 11 x 17 in */ { 35 }, /* PAPER_TABLOID_LAND 61 : 35 : Tabloid Landscape 17 x 11 in */ { 40 }, /* PAPER_EXECUTIVE 62 : 40 : Executive 7 1/4 x 10 1/2 in */ { 41 }, /* PAPER_EXECUTIVE_LAND 63 : 41 : Executive Landscape */ { 50 }, /* PAPER_JENV_YOU4 64 : 50 : Japanese Envelope You #4 */ { 51 }, /* PAPER_JENV_YOU4_LAND 65 : 51 : JapaneseEnvelopeYou#4Landscape */ // NTRAID#NTBUG9-350602-2002/03/07-yasuho-: Support new models for RC2 { 20 }, /* PAPER_DBL_POST 66 : 20 : Japanese Double Postcard */ { 21 }, /* PAPER_DBL_POST_LAND 67 : 21 : Japanese Dbl Postcard Landscape */ { 52 }, /* PAPER_JENV_YOU2 68 : 52 : Japanese Envelope You #2 */ { 53 }, /* PAPER_JENV_YOU2_LAND 69 : 53 : JapaneseEnvelopeYou#2Landscape */ }; //*************************************************** // All font of this driver must be described here //*************************************************** LIPSCmd cmdFontList = { 2, "\x20<"}; // Font List Command LIPSCmd cmdListSeparater = { 1, "\x1F"}; // Separater of FontList & Graphic set // Prop DBCS support // Courier support #define MaxFontNumber 59 #define MaxFacename 32 // Font Index Structure typedef struct tagFontNo{ char facename[MaxFacename]; char len; } FontNo, FAR * LPFontNo; // All phisical fonts // {"Font name", length of name} FontNo PFontList[MaxFontNumber+1] = { {"Mincho-Medium-H", 15}, // 1 {"Mincho-Medium", 13}, // 2 {"Gothic-Medium-H", 15}, // 3 {"Gothic-Medium", 13}, // 4 {"RoundGothic-Light-H", 19}, // 5 {"RoundGothic-Light", 17}, // 6 {"Dutch-Roman", 11}, // 7 {"Dutch-Bold", 10}, // 8 {"Dutch-Italic", 12}, // 9 {"Dutch-BoldItalic", 16}, // 10 {"Swiss", 5}, // 11 {"Swiss-Bold", 10}, // 12 {"Swiss-Oblique", 13}, // 13 {"Swiss-BoldOblique", 17}, // 14 {"Symbol", 6}, // 15 {"Kaisho-Medium-H", 15}, // 16 {"Kaisho-Medium", 13}, // 17 {"Kyokasho-Medium-H", 17}, // 18 {"Kyokasho-Medium", 15}, // 19 {"AvantGarde-Book", 15}, // 20 {"AvantGarde-Demi", 15}, // 21 {"AvantGarde-BookOblique", 22}, // 22 {"AvantGarde-DemiOblique", 22}, // 23 {"Bookman-Light", 13}, // 24 {"Bookman-Demi", 12}, // 25 {"Bookman-LightItalic", 19}, // 26 {"Bookman-DemiItalic", 18}, // 27 {"ZapfChancery-MediumItalic", 25}, // 28 {"ZapfDingbats", 12}, // 29 {"CenturySchlbk-Roman", 19}, // 30 {"CenturySchlbk-Bold", 18}, // 31 {"CenturySchlbk-Italic", 20}, // 32 {"CenturySchlbk-BoldItalic", 24}, // 33 {"Swiss-Narrow", 12}, // 34 {"Swiss-Narrow-Bold", 17}, // 35 {"Swiss-Narrow-Oblique", 20}, // 36 {"Swiss-Narrow-BoldOblique", 24}, // 37 {"ZapfCalligraphic-Roman", 22}, // 38 {"ZapfCalligraphic-Bold", 21}, // 39 {"ZapfCalligraphic-Italic", 23}, // 40 {"ZapfCalligraphic-BoldItalic", 27}, // 41 {"Mincho-Ultra-Bold-H-YM", 22}, // 42 TypeBank font {"Mincho-Ultra-Bold-YM", 20}, // 43 TypeBank font {"Gothic-Bold-H-YO", 16}, // 44 TypeBank font {"Gothic-Bold-YO", 14}, // 45 TypeBank font {"Gyosho-Medium-H", 15}, // 46 {"Gyosho-Medium", 13}, // 47 {"Mincho-UltraBold-H", 18}, // 48 {"Mincho-UltraBold", 16}, // 49 {"Gothic-UltraBold-H", 18}, // 50 {"Gothic-UltraBold", 16}, // 51 // Prop DBCS support {"Mincho-Medium-HPS", 17}, // 52 {"Mincho-Medium-PS", 16}, // 53 {"Gothic-Medium-HPS", 17}, // 54 {"Gothic-Medium-PS", 16}, // 55 // Courier support {"Ncourier", 8}, // 56 {"Ncourier-Bold", 13}, // 57 {"Ncourier-Italic", 15}, // 58 {"Ncourier-BoldItalic", 19}, // 59 {""} // 60 }; //*************************************************** // All Graphic Set of this driver must be described here //*************************************************** LIPSCmd cmdGrxList = { 2, "\x20;"}; // Graphics Set List Command #define MaxGrxSetNumber 12 #define MaxGrxSetName 5 // GrxSet Index Structure typedef struct tagGrxSet{ char grxsetname[MaxGrxSetName]; char len; // length of Graphic set string } GrxSetNo, FAR * LPGrxSetNo; // {"Graphics set name", length of name} #ifdef LIPS4 GrxSetNo GrxSetL4[MaxGrxSetNumber+1] = { {"1J", 2}, // 1 - ISO_JPN {"1I", 2}, // 2 - KATA {"2B", 2}, // 3 - J83 {"= 32 && (k) <= 63) #define RcidIsDBCSVertFont(k) \ ((k) == 41 || (k) == 43 || (k) == 45 || (k) == 47 || (k) == 49 ||\ (k) == 51 || (k) == 53 || (k) == 55 || (k) == 57 || (k) == 59 ||\ (k) == 61 || (k) == 63) // #ifndef LIPS4 //*********************************************************** // Graphic Set registration data // To keep the conpatibility against Canon's 3.1 driver //*********************************************************** // "\x1b[743;1796;30;0;32;127;.\x7dIBM819" // '\x00' // LIPSCmd cmdGSETREGST = { 31, "\x1b[743;1796;30;0;32;127;.\x7dIBM819"}; // Download SBCS physical device fontface from Dutch-Roman(7) // ZapfCalligraphic-BoldItalic(41) // Between the fontfaces, put \x00, and at the end of face, #define REGDataSize 193 // put \x00 x 2 // and the following data uchar GrxData[193+1] = { 0x00,0x00, 0x01,0x00,0x7d,0x00,0x2e,0x00,0x2f, 0x00,0x80,0x00,0x2c,0x00,0x13,0x00,0x35,0x00, // x9 0xc4,0x00,0xfc,0x00,0x94,0x00,0x21,0x00,0xc7, 0x00,0x24,0x00,0xfd,0x03,0x05,0x00,0x2b,0x00, 0x25,0x00,0xd0,0x00,0xd1,0x00,0xc2,0x00,0xa4, 0x00,0x39,0x00,0x85,0x00,0x8f,0x00,0xcf,0x00, 0x9a,0x00,0x22,0x00,0x46,0x00,0x44,0x00,0x48, 0x00,0x88,0x00,0xa8,0x00,0xa5,0x00,0xa6,0x00, 0xaa,0x00,0xa7,0x00,0xa9,0x00,0x93,0x00,0xab, 0x00,0xaf,0x00,0xac,0x00,0xad,0x00,0xae,0x00, 0xb3,0x00,0xb0,0x00,0xb1,0x00,0xb2,0x00,0x95, 0x00,0xb4,0x00,0xb8,0x00,0xb5,0x00,0xb6,0x00, 0xb9,0x00,0xb7,0x00,0x26,0x00,0x98,0x00,0xbe, 0x00,0xbb,0x00,0xbc,0x00,0xbd,0x00,0xc1,0x00, 0x96,0x00,0xa2,0x00,0xda,0x00,0xd7,0x00,0xd8, 0x00,0xdc,0x00,0xd9,0x00,0xdb,0x00,0x9b,0x00, 0xdd,0x00,0xe1,0x00,0xde,0x00,0xdf,0x00,0xe0, 0x00,0xe5,0x00,0xe2,0x00,0xe3,0x00,0xe4,0x00, 0xa3,0x00,0xe6,0x00,0xea,0x00,0xe7,0x00,0xe8, 0x00,0xeb,0x00,0xe9,0x00,0x27,0x00,0xa0,0x00, 0xf0,0x00,0xed,0x00,0xee,0x00,0xef,0x00,0xf3, 0x00,0x9e,0x00,0xf1}; #ifdef LIPS4C LIPSCmd cmdGSETREGST4C = { 30, "\x1b[807;1796;30;0;0;127;.\x7dIBM819"}; #define REGDataSize4C 257 // put \x00 x 2 // and the following data uchar GrxData4C[257+1] = { 0x00,0x00, 0x01,0x00,0x01,0x00,0x86, 0x00,0x7F,0x00,0x87,0x00,0x14,0x00,0x37, 0x00,0x38,0x00,0x89,0x00,0x36,0x00,0xBA, 0x00,0x1F,0x00,0x99,0x00,0x01,0x00,0x01, 0x00,0x01,0x00,0x01,0x00,0x15,0x00,0x16, 0x00,0x17,0x00,0x18,0x00,0x04,0x00,0x84, 0x00,0x0E,0x00,0xF8,0x00,0xC6,0x00,0xEC, 0x00,0x20,0x00,0xA1,0x00,0x01,0x00,0x01, 0x00,0xBF,0x00,0x01,0x00,0x7D,0x00,0x2E, 0x00,0x2F,0x00,0x80,0x00,0x2C,0x00,0xC8, 0x00,0x35,0x00,0xC4,0x00,0xFC,0x00,0x94, 0x00,0x21,0x00,0xC7,0x00,0x0F,0x00,0xFD, 0x03,0x05,0x00,0x2B,0x00,0x25,0x00,0xD0, 0x00,0xD1,0x00,0x09,0x00,0xA4,0x00,0x39, 0x00,0x85,0x00,0x8F,0x00,0xCF,0x00,0x9A, 0x00,0x22,0x00,0x46,0x00,0x44,0x00,0x48, 0x00,0x88,0x00,0xA8,0x00,0xA5,0x00,0xA6, 0x00,0xAA,0x00,0xA7,0x00,0xA9,0x00,0x93, 0x00,0xAB,0x00,0xAF,0x00,0xAC,0x00,0xAD, 0x00,0xAE,0x00,0xB3,0x00,0xB0,0x00,0xB1, 0x00,0xB2,0x00,0x95,0x00,0xB4,0x00,0xB8, 0x00,0xB5,0x00,0xB6,0x00,0xB9,0x00,0xB7, 0x00,0x26,0x00,0x98,0x00,0xBE,0x00,0xBB, 0x00,0xBC,0x00,0xBD,0x00,0xC1,0x00,0x96, 0x00,0xA2,0x00,0xDA,0x00,0xD7,0x00,0xD8, 0x00,0xDC,0x00,0xD9,0x00,0xDB,0x00,0x9B, 0x00,0xDD,0x00,0xE1,0x00,0xDE,0x00,0xDF, 0x00,0xE0,0x00,0xE5,0x00,0xE2,0x00,0xE3, 0x00,0xE4,0x00,0xA3,0x00,0xE6,0x00,0xEA, 0x00,0xE7,0x00,0xE8,0x00,0xEB,0x00,0xE9, 0x00,0x27,0x00,0xA0,0x00,0xF0,0x00,0xED, 0x00,0xEE,0x00,0xEF,0x00,0xF3,0x00,0x9E, 0x00,0xF1}; #endif // LIPS4C // #endif // !LIPS4 //*************************************************** // All SBCS(ANSI) font for the geristration of Graphic set //*************************************************** #define MaxSBCSNumber 30 // #define MaxFacename 32 // Font Index Structure // typedef struct tagFontNo{ // char facename[MaxFacename]; // char len; // } FontNo, FAR * LPFontNo; // All SBCS(ANSI) phisical fonts FontNo PSBCSList[MaxFontNumber+1] = { {"Dutch-Roman", 11}, // 1 {"Dutch-Bold", 10}, // 2 {"Dutch-Italic", 12}, // 3 {"Dutch-BoldItalic", 16}, // 4 {"Swiss", 5}, // 5 {"Swiss-Bold", 10}, // 6 {"Swiss-Oblique", 13}, // 7 {"Swiss-BoldOblique", 17}, // 8 {"AvantGarde-Book", 15}, // 9 {"AvantGarde-Demi", 15}, // 10 {"AvantGarde-BookOblique", 22}, // 11 {"AvantGarde-DemiOblique", 22}, // 12 {"Bookman-Light", 13}, // 13 {"Bookman-Demi", 12}, // 14 {"Bookman-LightItalic", 19}, // 15 {"Bookman-DemiItalic", 18}, // 16 {"ZapfChancery-MediumItalic", 25}, // 17 {"ZapfDingbats", 12}, // 18 {"CenturySchlbk-Roman", 19}, // 19 {"CenturySchlbk-Bold", 18}, // 20 {"CenturySchlbk-Italic", 20}, // 21 {"CenturySchlbk-BoldItalic", 24}, // 22 {"Swiss-Narrow", 12}, // 23 {"Swiss-Narrow-Bold", 17}, // 24 {"Swiss-Narrow-Oblique", 20}, // 25 {"Swiss-Narrow-BoldOblique", 24}, // 26 {"ZapfCalligraphic-Roman", 22}, // 27 {"ZapfCalligraphic-Bold", 21}, // 28 {"ZapfCalligraphic-Italic", 23}, // 29 {"ZapfCalligraphic-BoldItalic", 27}, // 30 {""} // 00 }; // Enter Vector mode LIPSCmd cmdBeginVDM = { 5, "\x1b[0&}"}; #if defined(LBP_2030) || defined(LIPS4C) LIPSCmd cmdEndVDM = { 3, "}p\x1E"}; LIPSCmd cmdBeginPalette = { 3, "^00"}; LIPSCmd cmdEndPalette = { 1, "\x1E"}; #endif // LBP_2030 || LIPS4C // VectorMode commands static char CMD_SET_PEN_WIDTH[] = "F1%s\x1E"; static char CMD_SET_PEN_TYPE[] = "E1%d\x1E"; static char CMD_SET_PEN_STYLE[] = "}G%d%c\x1E"; static char CMD_SET_BRUSH_STYLE[] = "I%c%c\x1E"; // NULL SOLID HOZI VERT FDIAG BDIAG CROSS DIACROSS static char BrushType[8] = {0x30, 0x31, 0x25, 0x24, 0x23, 0x22, 0x27, 0x26}; #endif // LIPS4_DRIVER // Device font height and font width values calculated // form the IFIMETRICS field values. Must be the same way // what Unidrv is doing to calculate stdandard variables. // (Please check.) #define FH_IFI(p) ((p)->fwdUnitsPerEm) #define FW_IFI(p) ((p)->fwdAveCharWidth) // NTRAID#NTBUG9-172276-2002/03/07-yasuho-: CPCA support // External functions VOID CPCAInit(PLIPSPDEV pOEM); VOID CPCAStart(PDEVOBJ pdevobj); VOID CPCAEnd(PDEVOBJ pdevobj, BOOL fColor); #endif // _PDEV_H