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.
 
 
 
 
 
 

185 lines
3.9 KiB

////////////////////////////////////////////////////////////////////////
// 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_