//////////////////////////////////////////////////////////////////////// // Copyright (c) 1999-2001 Microsoft Corporation // All rights reserved. // //Module Name: // // oemdev.h // //Abstract: // // OEM DEVMODE // //Environment: // // Windows NT printer driver // ////////////////////////////////////////////////////////////////// #ifndef _INCLUDE_OEMDEV_H_ #define _INCLUDE_OEMDEV_H_ #ifndef WIN32 #define WIN32 #endif /////////////////////////////////////////////////////////////////////////// // Defines /////////////////////////////////////////////////////////////////////////// // // VERSION number // #define OEM_DEVMODE_VERSION_1_0 0x00010000 #define HELPFILE_NAME_LENGTH 256 // // Printer Model Defined Constants. // // Any new supported printer model needs to be added to this list. // #define HP_MODEL_NOT_SUPPORTED 0 #define HP_HPCLJ5 1 #define HP_HPC4500 2 #ifdef PSCRIPT // // Postscript stuff // typedef struct _CMD_INJECTION { DWORD dwbSize; DWORD dwIndex; DWORD loOffset; } CMD_INJECTION; #define NUM_OF_PS_INJECTION 5 typedef struct _OEMDEVMODE { OEM_DMEXTRAHEADER DMExtraHdr; CMD_INJECTION InjectCmd[NUM_OF_PS_INJECTION]; } OEMDEVMODE, *POEMDEVMODE; #else typedef enum _OEMGRAPHICSMODE { // In Raster Graphics Mode, control is sent back to the Unidriver and GDI. // In HPGL2 Graphics Mode, all processing is done by the our kernel mode // dll. HPGL2, RASTER, RIP } OEMGRAPHICSMODE; typedef enum _OEMHALFTONE { // Monarch distinguishes between the Text and Graphics // halftones. So, four different halftones are needed for // Monarch. // Bedrock + does not distinguish between text and graphics. TEXT_DETAIL, /* Esc*t0J */ TEXT_SMOOTH, /* Esc*t15J */ GRAPHICS_DETAIL, /* Esc*t15J */ GRAPHICS_SMOOTH, /* Esc*t18J */ CLJ5_DETAIL, /* Esc*t0J */ CLJ5_SMOOTH, /* Esc*t15J */ CLJ5_BASIC, /* Esc*t18J */ HALFTONE_NOT_SET } OEMHALFTONE; typedef enum _OEMCOLORCONTROL { VIVID, SCRNMATCH, CLJ5_SCRNMATCH, NOADJ, COLORCONTROL_NOT_SET } OEMCOLORCONTROL; typedef struct _OEMCOLOROPTIONS { OEMHALFTONE Halftone; OEMCOLORCONTROL ColorControl; } OEMCOLOROPTIONS, *POEMCOLOROPTIONS; typedef enum _OEMRESOLUTION { // Monarch supports both 300 and 600 dpi. Ideally monarch should only // use 600 dpi but for debugging purposes 300 dpi is used as well. // Bedrock + supports only 300 dpi. PDM_150DPI, PDM_300DPI, PDM_600DPI, PDM_1200DPI } OEMRESOLUTION; typedef enum _OEMPAPERTYPE { // All of the following paper types are supported by // the Monarch. Only PLAIN, GLOSSY, and TRANSPARENCY // are supported by Bedrock + UNSPECIFIED, // Default Paper Type PLAIN, PREPRINTED, LETTERHEAD, TRANSPARENCY, GLOSSY, PREPUNCHED, LABELS, BOND, RECYCLED, COLOR, HEAVY, CARDSTOCK } OEMPAPERTYPE; typedef enum _OEMPRINTERMODEL { HPCLJ5, HPC4500, MODEL_NOT_NEEDED } OEMPRINTERMODEL; // // Whether or not the document will print in monochrome mode or color. // typedef enum _OEMCOLORMODE { MONOCHROME_MODE, COLOR_MODE } OEMCOLORMODE; typedef struct _OEMDEVMODE { OEM_DMEXTRAHEADER DMExtraHdr; BOOL DirtyDefaults; BOOL DirtyColors; BOOL DirtyOptions; BOOL ColorTreatment; OEMCOLOROPTIONS Text; OEMCOLOROPTIONS Graphics; OEMCOLOROPTIONS Photos; OEMPAPERTYPE OemPaperType; BOOL TrueType; BOOL ListPrinterFonts; BOOL MetafileSpool; BOOL GlossFinish; OEMGRAPHICSMODE UIGraphicsMode; LONG Duplex; OEMRESOLUTION dmResolution; BOOL bFastRaster; OEMPRINTERMODEL PrinterModel; BOOL bUpdateTreeview; OEMCOLORMODE eOemColorMode; WCHAR lpwstrHelpFile[HELPFILE_NAME_LENGTH]; } OEMDEVMODE, *POEMDEVMODE; #endif // PSCRIPT #endif // _INCLUDE_OEMDEV_H_