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.
 
 
 
 
 
 

1148 lines
44 KiB

/*++
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 <minidrv.h>
#include <stdio.h>
#include <prcomoem.h>
#include <strsafe.h>
#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[<Id>;;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
{"<B", 2}, // 4 - DBCS vertical character set
{"1! &1", 5}, // 5 - Win31L (1061)
{"1! &2", 5}, // 6 - Win31R (1062)
{"1\x22!!0", 5}, // 7 - 1"!!0 SYML (2110)
{"1\x22!!1", 5}, // 8 - 1"!!1 SYMR (2111)
{"1\x22!!2", 5}, // 9 - 1"!!2 DNGL (2112)
{"1\x22!!3", 5}, // 10 - 1"!!3 DNGR (2113)
{"2!',2", 5}, // 11 - W90 (17C2)
{"<!',2", 5}, // 12 - W90 (17C2) - for vertical
{""} // 13
};
#endif // LIPS4
#ifdef LIPS4C
// {"Graphics set name", length of name}
GrxSetNo GrxSetL4C[MaxGrxSetNumber+1] = {
{"1J", 2}, // 1 - ISO_JPN
{"1I", 2}, // 2 - KATA
{"2B", 2}, // 3 - J83
{"<B", 2}, // 4 - DBCS vertical character set
{"1\x22!$2", 5}, // 5 - 1"!$2 PSL (2142)
{"1\x27 4", 4}, // 6 - 1' 4 ?? (704) ANSI Windows char set, User defined
{"1\x22!!0", 5}, // 7 - 1"!!0 SYML (2110)
{"1\x22!!1", 5}, // 8 - 1"!!1 SYMR (2111)
{"1\x22!!2", 5}, // 9 - 1"!!2 DNGL (2112)
{"1\x22!!3", 5}, // 10 - 1"!!3 DNGR (2113)
{"2!',2", 5}, // 11 - W90 (17C2)
{"<!',2", 5}, // 12 - W90 (17C2) - for vertical
{""} // 13
};
#endif // LIPS4C
// LIPS3
GrxSetNo GrxSetL3[MaxGrxSetNumber+1] = {
{"1J", 2}, // 1 - ISO_JPN
{"1I", 2}, // 2 - KATA
{"2B", 2}, // 3 - J83
{"<B", 2}, // 4 - DBCS vertical character set
{"1\x27\x24\x32", 4}, // 5 - IBML (742)
{"1\x27\x20\x34", 4}, // 6 - IBM819 (704 - user defined)
{"1\x22!!0", 5}, // 7 - 1"!!0 SYML (2110)
{"1\x22!!1", 5}, // 8 - 1"!!1 SYMR (2111)
{"1\x22!!2", 5}, // 9 - 1"!!2 DNGL (2112)
{"1\x22!!3", 5}, // 10 - 1"!!3 DNGR (2113)
{"2!',2", 5}, // 11 - W90 (17C2)
{"<!',2", 5}, // 12 - W90 (17C2) - for vertical
{""} // 13
};
//***************************************************
// LIPS font table
//***************************************************
// All logical fonts
/*
Font Index Graphic Set Index
LFontList[Logical Font ID(PFM ID)].fontgrxids[GO,G1,G2,G3(font),G0,G1,G2,G3]
*/
// Prop DBCS support
// Courier support
#define MaxLogicalFont 55
#define FirstLogicalFont 101
// {font id x 4, grx id x 4}
// the index of array must be related with FontID in PFM file
// the index of array = FontID in PFM - 101
uchar LFontList[MaxLogicalFont+1][8] = {
{ 1, 1, 2, 2, 1,2,3,4}, // 1-"–¾’©" (Mincho), "Mincho-Medium"
// 1-"•½�¬–¾’©‘ÌW3" (HeiseiMinchoW7)
{ 3, 3, 4, 4, 1,2,3,4}, // 2-"ºÞ¼¯¸" (Gothic), "Gothic-Medium"
// 2-"•½�¬ºÞ¼¯¸‘ÌW5" (HeiseiGothicW9)
{ 5, 5, 6, 6, 1,2,3,4}, // 3-"ŠÛºÞ¼¯¸" (RoundGothic), "RoundGothic-Medium"
{16,16,17,17, 1,2,3,4}, // 4-"ž²�‘" (Kaisho), "Kaisho-Medium"
{18,18,19,19, 1,2,3,4}, // 5-"‹³‰È�‘" (Kyokasho), "Kyokasho-Medium"
{11, 3, 4, 4, 1,2,3,4}, // 6-"½²½" (SUISU), "Swiss-Roman"
{12, 3, 4, 4, 1,2,3,4}, // 7-"½²½" (SUISU), "Swiss-Bold"
{13, 3, 4, 4, 1,2,3,4}, // 8-"½²½" (SUISU), "Swiss-Oblique"
{14, 3, 4, 4, 1,2,3,4}, // 9-"½²½" (SUISU), "Swiss-BoldOblique"
{ 7, 1, 2, 2, 1,2,3,4}, // 10-"ÀÞ¯Á" (DACCHI), "Dutch-Roman"
{ 8, 1, 2, 2, 1,2,3,4}, // 11-"ÀÞ¯Á" (DACCHI), "Dutch-Bold"
{ 9, 1, 2, 2, 1,2,3,4}, // 12-"ÀÞ¯Á" (DACCHI), "Dutch-Italic"
{10, 1, 2, 2, 1,2,3,4}, // 13-"ÀÞ¯Á" (DACCHI), "Dutch-BoldItalic"
{11,11, 2, 2, 5,6,3,4}, // 14-"Swiss", "Swiss"
{12,12, 2, 2, 5,6,3,4}, // 15-"Swiss", "Swiss-Bold"
{13,13, 2, 2, 5,6,3,4}, // 16-"Swiss", "Swiss-Oblique"
{14,14, 2, 2, 5,6,3,4}, // 17-"Swiss", "Swiss-BoldOblique"
{ 7, 7, 2, 2, 5,6,3,4}, // 18-"Dutch", "Dutch-Roman"
{ 8, 8, 2, 2, 5,6,3,4}, // 19-"Dutch", "Dutch-Bold"
{ 9, 9, 2, 2, 5,6,3,4}, // 20-"Dutch", "Dutch-Italic"
{10,10, 2, 2, 5,6,3,4}, // 21-"Dutch", "Dutch-BoldItalic"
{15,15, 2, 2, 7,8,3,4}, // 22-"Symbol", "Symbol"
{20,20, 2, 2, 5,6,3,4}, // 23-"AvantGarde", "AvantGarde-Book"
{21,21, 2, 2, 5,6,3,4}, // 24-"AvantGarde", "AvantGarde-Demi"
{22,22, 2, 2, 5,6,3,4}, // 25-"AvantGarde", "AvantGarde-BookOblique"
{23,23, 2, 2, 5,6,3,4}, // 26-"AvantGarde", "AvantGarde-DemiOblique"
{24,24, 2, 2, 5,6,3,4}, // 27-"Bookman", "Bookman-Light"
{25,25, 2, 2, 5,6,3,4}, // 28-"Bookman", "Bookman-Demi"
{26,26, 2, 2, 5,6,3,4}, // 29-"Bookman", "Bookman-LightItalic"
{27,27, 2, 2, 5,6,3,4}, // 30-"Bookman", "Bookman-DemiItalic"
{28,28, 2, 2, 5,6,3,4}, // 31-"ZapfChancery", "ZapfChancery-MediumItalic"
{29,29, 2, 2, 9,10,3,4}, // 32-"ZapfDingbats", "ZapfDingbats"
{30,30, 2, 2, 5,6,3,4}, // 33-"CenturySchlbk", "CenturySchlbk-Roman"
{31,31, 2, 2, 5,6,3,4}, // 34-"CenturySchlbk", "CenturySchlbk-Bold"
{32,32, 2, 2, 5,6,3,4}, // 35-"CenturySchlbk", "CenturySchlbk-Italic"
{33,33, 2, 2, 5,6,3,4}, // 36-"CenturySchlbk", "CenturySchlbk-BoldItalic"
{34,34, 2, 2, 5,6,3,4}, // 37-"Swiss-Narrow", "Swiss-Narrow"
{35,35, 2, 2, 5,6,3,4}, // 38-"Swiss-Narrow", "Swiss-Narrow-Bold"
{36,36, 2, 2, 5,6,3,4}, // 39-"Swiss-Narrow", "Swiss-Narrow-Oblique"
{37,37, 2, 2, 5,6,3,4}, // 40-"Swiss-Narrow", "Swiss-Narrow-BoldOblique"
{38,38, 2, 2, 5,6,3,4}, // 41-"ZapfCalligraphic", "ZapfCalligraphic-Roman"
{39,39, 2, 2, 5,6,3,4}, // 42-"ZapfCalligraphic", "ZapfCalligraphic-Bold"
{40,40, 2, 2, 5,6,3,4}, // 43-"ZapfCalligraphic", "ZapfCalligraphic-Italic"
{41,41, 2, 2, 5,6,3,4}, // 44-"ZapfCalligraphic", "ZapfCalligraphic-BoldItalic"
{42,42,43,43, 1,2,3,4}, // 45-"À²ÌßÊÞݸ–¾’©H" (TypeBankMincho), "Mincho-Ultra-Bold"
{44,44,45,45, 1,2,3,4}, // 46-"À²ÌßÊÞݸºÞ¼¯¸B" (TypeBankGothic), "Gothic-Bold-YO"
{46,46,47,47, 1,2,3,4}, // 47-"�s�‘" (Gyosho), "Gyosho-Medium"
{48,48,49,49, 1,2,3,4}, // 48-"•½�¬–¾’©‘ÌW7" (HeiseiMinchoW7), "Mincho-UltraBold"
{50,50,51,51, 1,2,3,4}, // 49-"•½�¬ºÞ¼¯¸‘ÌW9" (HeiseiGothicW9), "Gothic-UltraBold"
// Prop DBCS support
{52,52,53,53, 1,2,11,12},// 50-"–¾’© PS" (Mincho-PS), "Mincho-Medium-PS"
{54,54,55,55, 1,2,11,12},// 51-"ºÞ¼¯¸ PS" (Gothic-PS), "Gothic-Medium-PS"
// Courier support
{56,56, 2, 2, 5,6,3,4}, // 52-"Courier", "NCourier"
{57,57, 2, 2, 5,6,3,4}, // 53-"Courier", "NCourier-Bold"
{58,58, 2, 2, 5,6,3,4}, // 54-"Courier", "NCourier-Italic"
{59,59, 2, 2, 5,6,3,4}, // 55-"Courier", "NCourier-BoldItalic"
{0,0,0,0,0,0,0,0} // 56
};
// Vertical font resource IDs
// They are used in OutputChar() to check with if a font is vertical
// face or not
#define RcidIsDBCSFont(k) ((k) >= 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