|
|
1.1 ! root 1: //-------------------------------------------------------------------------- ! 2: // ! 3: // Module Name: PPD.H ! 4: // ! 5: // Brief Description: This module contains the PSCRIPT driver's structures ! 6: // and declarations for Printer Description routines. ! 7: // ! 8: // Author: Kent Settle (kentse) ! 9: // Created: 22-Mar-1991 ! 10: // ! 11: // Copyright (c) 1991 Microsoft Corporation ! 12: // ! 13: //-------------------------------------------------------------------------- ! 14: ! 15: #define TK_EOF -1 ! 16: #define TK_UNDEFINED 0 ! 17: #define PRODUCT 1 ! 18: #define NICKNAME 2 ! 19: #define COLORDEVICE 3 ! 20: #define FILESYSTEM 4 ! 21: #define DEFAULTRESOLUTION 5 ! 22: #define DEFAULTTRANSFER 6 ! 23: #define TRANSFER 8 ! 24: #define DEFAULTPAGESIZE 9 ! 25: #define PAGESIZE 10 ! 26: #define PAGEREGION 11 ! 27: #define DEFAULTIMAGEABLEAREA 12 ! 28: #define IMAGEABLEAREA 13 ! 29: #define DEFAULTMANUALFEED 14 ! 30: #define MANUALFEED 15 ! 31: #define DEFAULTFONT 16 ! 32: #define DEVICE_FONT 17 ! 33: #define INPUTSLOT 18 ! 34: #define PAPERDIMENSION 19 ! 35: #define DEFAULTINPUTSLOT 20 ! 36: #define ENDOFFILE 21 ! 37: #define SCREENFREQ 22 ! 38: #define SCREENANGLE 23 ! 39: #define PRTVM 24 ! 40: #define SETRESOLUTION 25 ! 41: #define VARIABLEPAPER 26 ! 42: #define OUTPUTBIN 27 ! 43: #define DEFAULTOUTPUTBIN 28 ! 44: #define PROTOCOLS 29 ! 45: #define DUPLEX 30 ! 46: #define COLLATE 31 ! 47: #define LANGUAGELEVEL 32 ! 48: #define RESOLUTION 33 ! 49: ! 50: ! 51: #define NORMALIZED 1 ! 52: #define OPTION_TRUE 2 ! 53: #define OPTION_FALSE 3 ! 54: #define NORM_INVERSE 4 ! 55: #define DUPLEX_TUMBLE 5 ! 56: #define DUPLEX_NO_TUMBLE 6 ! 57: #define OPTION_NONE 8 ! 58: ! 59: #define INIT_NTPD 4096 ! 60: #define NTPD_VERSION 0x0100 ! 61: #define DEF_RESOLUTION 300 ! 62: #define MAX_PPD_STRING 512 ! 63: #define MAX_RESOLUTIONS 12 ! 64: #define MAX_PAPERSIZES 45 ! 65: #define MAX_BINS 32 ! 66: #define MAX_FONTS 256 ! 67: #define MAX_FILENAME 80 ! 68: #define MAX_SLOT_NAME 64 ! 69: ! 70: // NTPD flag definitions. ! 71: ! 72: #define COLOR_DEVICE 0x0001 ! 73: #define VARIABLE_PAPER 0x0002 ! 74: #define MANUALFEED_ON 0x0004 ! 75: #define ACP_PROTOCOL 0x0008 ! 76: #define PJL_PROTOCOL 0x0010 ! 77: #define BCP_PROTOCOL 0x0020 ! 78: #define TBCP_PROTOCOL 0x0040 ! 79: #define TBCP_PJL_PROTOCOL 0x0080 ! 80: #define PJL_TBCP_PROTOCOL 0x0100 ! 81: #define SIC_PROTOCOL 0x0200 ! 82: #define SIC_TBCP_PROTOCOL 0x0400 ! 83: #define TBCP_SIC_PROTOCOL 0x0800 ! 84: #define PS_HALFTONE 0x1000 ! 85: #define NO_ENDOFFILE 0x2000 ! 86: ! 87: // NTPD Input Slots. ! 88: ! 89: #define SLOT_ONLYONE 0 ! 90: #define SLOT_MANUAL 1 ! 91: ! 92: #define SLOT_FIRST SLOT_ONLYONE ! 93: #define SLOT_LAST SLOT_MANUAL ! 94: #define NUMINPUTSLOTS SLOT_LAST + 1 ! 95: ! 96: #define SLOTS_BASE 2000 ! 97: ! 98: // NTPD Output Bins. ! 99: ! 100: #define BIN_ONLYONE 0 ! 101: #define BIN_UPPER 1 ! 102: #define BIN_LOWER 2 ! 103: #define BIN_MIDDLE 3 ! 104: ! 105: #define BIN_FIRST BIN_ONLYONE ! 106: #define BIN_LAST BIN_MIDDLE ! 107: ! 108: typedef ULONG LOFFSET; // long offset. ! 109: ! 110: typedef struct ! 111: { ! 112: USHORT usIndex; ! 113: CHAR szString[MAX_PPD_STRING]; ! 114: } STRINGINDEX; ! 115: ! 116: typedef struct ! 117: { ! 118: CHAR szName[MAX_PPD_STRING]; ! 119: CHAR szInvocation[MAX_PPD_STRING]; ! 120: } STRINGPAIR; ! 121: ! 122: typedef struct ! 123: { ! 124: DWORD iValue; ! 125: LOFFSET loInvocation; ! 126: } PSRESOLUTION; ! 127: ! 128: typedef struct ! 129: { ! 130: LOFFSET loFormName; // offset to form name string. ! 131: LOFFSET loSizeInvo; // offset to pagesize invocation string. ! 132: LOFFSET loRegionInvo; // offset to pageregion invocation string. ! 133: RECTL imagearea; // imageable area rectangle in USER units. ! 134: SIZEL sizlPaper; // size of the paper in USER units. ! 135: } PSFORM; ! 136: ! 137: typedef struct ! 138: { ! 139: LOFFSET loBinName; // offset to output bin name string. ! 140: LOFFSET loBinInvo; // offset to output bin invocation string. ! 141: } PSOUTPUTBIN; ! 142: ! 143: typedef struct ! 144: { ! 145: LOFFSET loSlotName; // offset to input slot name string. ! 146: LOFFSET loSlotInvo; // offset to input slot invocation string. ! 147: } PSINPUTSLOT; ! 148: ! 149: ! 150: typedef struct ! 151: { ! 152: CHAR szForm[MAX_PPD_STRING]; ! 153: RECTL rect; ! 154: } IMAGEAREA; ! 155: ! 156: typedef struct ! 157: { ! 158: CHAR szForm[MAX_PPD_STRING]; ! 159: SIZEL sizl; ! 160: } PAPERDIM; ! 161: ! 162: // structure to build the more compact NTPD from. ! 163: ! 164: typedef struct ! 165: { ! 166: DWORD cbPrinterName; ! 167: CHAR szPrinterName[MAX_PPD_STRING]; ! 168: STRINGINDEX siResolutions[MAX_RESOLUTIONS]; ! 169: DWORD cbTransferNorm; ! 170: CHAR szTransferNorm[MAX_PPD_STRING * 2]; ! 171: DWORD cbInvTransferNorm; ! 172: CHAR szInvTransferNorm[MAX_PPD_STRING * 2]; ! 173: CHAR szDefaultForm[MAX_PPD_STRING]; ! 174: STRINGPAIR FormEntry[MAX_PAPERSIZES]; ! 175: STRINGPAIR PageRegion[MAX_PAPERSIZES]; ! 176: DWORD cImageableAreas; ! 177: IMAGEAREA ImageableArea[MAX_PAPERSIZES]; ! 178: DWORD cPaperDimensions; ! 179: PAPERDIM PaperDimension[MAX_PAPERSIZES]; ! 180: CHAR szDefaultOutputBin[MAX_PPD_STRING]; ! 181: STRINGPAIR siOutputBin[MAX_BINS]; ! 182: CHAR szDefaultInputSlot[MAX_PPD_STRING]; ! 183: STRINGPAIR siInputSlot[MAX_BINS]; ! 184: DWORD cbManualTRUE; ! 185: DWORD cbManualFALSE; ! 186: CHAR szManualTRUE[MAX_PPD_STRING]; ! 187: CHAR szManualFALSE[MAX_PPD_STRING]; ! 188: DWORD cbDuplexNone; ! 189: CHAR szDuplexNone[MAX_PPD_STRING]; ! 190: DWORD cbDuplexTumble; ! 191: CHAR szDuplexTumble[MAX_PPD_STRING]; ! 192: DWORD cbDuplexNoTumble; ! 193: CHAR szDuplexNoTumble[MAX_PPD_STRING]; ! 194: DWORD cbCollateOn; ! 195: CHAR szCollateOn[MAX_PPD_STRING]; ! 196: DWORD cbCollateOff; ! 197: CHAR szCollateOff[MAX_PPD_STRING]; ! 198: BYTE bFonts[MAX_FONTS]; ! 199: } TMP_NTPD, *PTMP_NTPD; ! 200: ! 201: typedef struct ! 202: { ! 203: char *szStr; ! 204: int iValue; ! 205: } TABLE_ENTRY; ! 206: ! 207: typedef struct ! 208: { ! 209: PWSTR pwstrTTFont; ! 210: PWSTR pwstrDevFont; ! 211: } TT_FONT_MAPPING; ! 212: ! 213: // NTPD - the NT Printer Descriptor structure. this is the structure ! 214: // into which PPD files are compiled. NOTE - cPSForms gives the ! 215: // count of supported paper sizes for the printer. it is used as ! 216: // the count for PageSize, PageRegion ImageableArea and PaperDimension. ! 217: // loDefaultForm defines the default PageSize, PageRegion, ImageableArea ! 218: // and PaperDimension. ! 219: // ! 220: // NOTE - each LOFFSET is a byte offset from the beginning of this structure. ! 221: ! 222: typedef struct ! 223: { ! 224: DWORD cjThis; // byte length including data. ! 225: DWORD ulVersion; ! 226: FLONG flFlags; ! 227: LOFFSET lowszPrinterName; // offset to UNICODE printer name. ! 228: DWORD cbFreeVM; // free VM in KB. ! 229: DWORD LangLevel; // PostScript Language Level. ! 230: USHORT iDefResolution; ! 231: USHORT cResolutions; // count of resolutions supported. ! 232: LOFFSET loResolution; // offset to PSRESOLUTION structs. ! 233: USHORT iScreenFreq; // frequency * 10. ! 234: USHORT iScreenAngle; // angle * 10. ! 235: LOFFSET loszTransferNorm; // offset to transfer norm. string. ! 236: LOFFSET loszInvTransferNorm; // offset to inv transfer norm. string. ! 237: DWORD cPSForms; // count of forms. ! 238: DWORD cPageRegions; // count of pageregions. ! 239: LOFFSET loPSFORMArray; // offset to array of PSFORM structs. ! 240: LOFFSET loDefaultForm; // offset to default form name. ! 241: DWORD cOutputBins; // count of output bins. ! 242: LOFFSET loPSOutputBins; // offset to PSOUTPUTBIN structs. ! 243: LOFFSET loDefaultBin; // offset to default output bin name. ! 244: DWORD cInputSlots; // count of input slots. ! 245: LOFFSET loPSInputSlots; // offset to PSINPUTSLOT structs. ! 246: LOFFSET loDefaultSlot; // offset to default input slot name. ! 247: LOFFSET loszManualFeedTRUE; // offset to manfeedtrue string. ! 248: LOFFSET loszManualFeedFALSE; // offset to manfeedfalse string. ! 249: LOFFSET loszDuplexNone; // offset to duplex none string. ! 250: LOFFSET loszDuplexTumble; // offset to duplex tumble string. ! 251: LOFFSET loszDuplexNoTumble; // offset to duplex no tumble string. ! 252: LOFFSET loszCollateOn; // offset to collate on string. ! 253: LOFFSET loszCollateOff; // offset to collate off string. ! 254: USHORT cFonts; // count of fonts supported. ! 255: USHORT usDefaultFont; // index into FontTable. ! 256: LOFFSET loFonts; // offset to fonts list. ! 257: } NTPD, *PNTPD;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.