The DEVMODE data structure contains information about the device initialization and environment of a printer.
typedef struct _devicemode { // dvmd BCHAR dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BCHAR dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; DWORD dmDisplayFlags; DWORD dmDisplayFrequency; #if(WINVER >= 0x0400) DWORD dmICMMethod; // Windows 95 only DWORD dmICMIntent; // Windows 95 only DWORD dmMediaType; // Windows 95 only DWORD dmDitherType; // Windows 95 only DWORD dmReserved1; // Windows 95 only DWORD dmReserved2; // Windows 95 only #endif /* WINVER >= 0x0400 */ } DEVMODE;
The following bit flags are defined, and are listed here with the corresponding structure members:
Value |
Structure Member |
DM_ORIENTATION |
dmOrientation |
DM_PAPERSIZE |
dmPaperSize |
DM_PAPERLENGTH |
dmPaperLength |
DM_PAPERWIDTH |
dmPaperWidth |
DM_SCALE |
dmScale |
DM_COPIES |
dmCopies |
DM_DEFAULTSOURCE |
dmDefaultSource |
DM_PRINTQUALITY |
dmPrintQuality |
DM_COLOR |
dmColor |
DM_DUPLEX |
dmDuplex |
DM_YRESOLUTION |
dmYResolution |
DM_TTOPTION |
dmTTOption |
DM_COLLATE |
dmCollate |
DM_FORMNAME |
dmFormName |
DM_LOGPIXELS |
dmLogPixels |
DM_BITSPERPEL |
dmBitsPerPel |
DM_PELSWIDTH |
dmPelsWidth |
DM_PELSHEIGHT |
dmPelsHeight |
DM_DISPLAYFLAGS |
dmDisplayFlags |
DM_DISPLAYFREQUENCY |
dmDisplayFrequency |
DM_ICMMETHOD |
Windows 95 only: dmICMMethod |
DM_ICMINTENT |
Windows 95 only: dmICMIntent |
DM_MEDIATYPE |
Windows 95 only: dmMediaType |
DM_DITHERTYPE |
Windows 95 only: dmDitherType |
Value |
Meaning |
DMPAPER_LETTER |
Letter, 8 1/2- by 11-inches |
DMPAPER_LEGAL |
Legal, 8 1/2- by 14-inches |
DMPAPER_A4 |
A4 Sheet, 210- by 297-millimeters |
DMPAPER_CSHEET |
C Sheet, 17- by 22-inches |
DMPAPER_DSHEET |
D Sheet, 22- by 34-inches |
DMPAPER_ESHEET |
E Sheet, 34- by 44-inches |
DMPAPER_LETTERSMALL |
Letter Small, 8 1/2- by 11-inches |
DMPAPER_TABLOID |
Tabloid, 11- by 17-inches |
DMPAPER_LEDGER |
Ledger, 17- by 11-inches |
DMPAPER_STATEMENT |
Statement, 5 1/2- by 8 1/2-inches |
DMPAPER_EXECUTIVE |
Executive, 7 1/4- by 10 1/2-inches |
DMPAPER_A3 |
A3 sheet, 297- by 420-millimeters |
DMPAPER_A4SMALL |
A4 small sheet, 210- by 297-millimeters |
DMPAPER_A5 |
A5 sheet, 148- by 210-millimeters |
DMPAPER_B4 |
B4 sheet, 250- by 354-millimeters |
DMPAPER_B5 |
B5 sheet, 182- by 257-millimeter paper |
DMPAPER_FOLIO |
Folio, 8 1/2- by 13-inch paper |
DMPAPER_QUARTO |
Quarto, 215- by 275-millimeter paper |
DMPAPER_10X14 |
10- by 14-inch sheet |
DMPAPER_11X17 |
11- by 17-inch sheet |
DMPAPER_NOTE |
Note, 8 1/2- by 11-inches |
DMPAPER_ENV_9 |
#9 Envelope, 3 7/8- by 8 7/8-inches |
DMPAPER_ENV_10 |
#10 Envelope, 4 1/8- by 9 1/2-inches |
DMPAPER_ENV_11 |
#11 Envelope, 4 1/2- by 10 3/8-inches |
DMPAPER_ENV_12 |
#12 Envelope, 4 3/4- by 11-inches |
DMPAPER_ENV_14 |
#14 Envelope, 5- by 11 1/2-inches |
DMPAPER_ENV_DL |
DL Envelope, 110- by 220-millimeters |
DMPAPER_ENV_C5 |
C5 Envelope, 162- by 229-millimeters |
DMPAPER_ENV_C3 |
C3 Envelope, 324- by 458-millimeters |
DMPAPER_ENV_C4 |
C4 Envelope, 229- by 324-millimeters |
DMPAPER_ENV_C6 |
C6 Envelope, 114- by 162-millimeters |
DMPAPER_ENV_C65 |
C65 Envelope, 114- by 229-millimeters |
DMPAPER_ENV_B4 |
B4 Envelope, 250- by 353-millimeters |
DMPAPER_ENV_B5 |
B5 Envelope, 176- by 250-millimeters |
DMPAPER_ENV_B6 |
B6 Envelope, 176- by 125-millimeters |
DMPAPER_ENV_ITALY |
Italy Envelope, 110- by 230-millimeters |
DMPAPER_ENV_MONARCH |
Monarch Envelope, 3 7/8- by 7 1/2-inches |
DMPAPER_ENV_PERSONAL |
6 3/4 Envelope, 3 5/8- by 6 1/2-inches |
DMPAPER_FANFOLD_US |
US Std Fanfold, 14 7/8- by 11-inches |
DMPAPER_FANFOLD_STD_GERMAN |
German Std Fanfold, 8 1/2- by 12-inches |
DMPAPER_FANFOLD_LGL_GERMAN |
German Legal Fanfold, 8 1/2- by 13-inches |
DMRES_HIGH
DMRES_MEDIUM
DMRES_LOW
DMRES_DRAFT
If a positive value is given, it specifies the number of dots per inch (DPI)
and is therefore device dependent.
DMCOLOR_COLOR
DMCOLOR_MONOCHROME
DMDUP_SIMPLEX
DMDUP_HORIZONTAL
DMDUP_VERTICAL
Value |
Meaning |
DMTT_BITMAP |
Prints TrueType fonts as graphics. This is the default action for dot-matrix printers. |
DMTT_DOWNLOAD |
Downloads TrueType fonts as soft fonts. This is the default action for Hewlett-Packard printers that use Printer Control Language (PCL). |
DMTT_SUBDEV |
Substitute device fonts for TrueType fonts. This is the default action for PostScript® printers. |
Value |
Meaning |
DMCOLLATE_TRUE |
Collate when printing multiple copies. |
DMCOLLATE_FALSE |
Do not collate when printing multiple copies. |
Using DMCOLLATE_TRUE provides faster, more efficient output for collation,
since the data is sent to the device driver just once, no matter how many
copies are required. The printer is told to simply print the page again.
Windows 95: Printer drivers do not use this member.
Value |
Meaning |
DM_GRAYSCALE |
Specifies that the display is a noncolor device. If this flag is not set, color is assumed. |
DM_INTERLACED |
Specifies that the display mode is interlaced. If the flag is not set, noninterlaced is assumed. |
Display drivers use this member, for example, in the ChangeDisplaySettings
function. Printer drivers do not use this member.
When you call the EnumDisplaySettings
function, the dmDisplayFrequency member may return with the value 0 or
1. These values represent the display hardware’s default refresh rate. This
default rate is typically set by switches on a display card or computer
motherboard, or by a configuration program that does not use Win32 display
functions such as ChangeDisplaySettings.
Specifies how ICM is handled. For a non-ICM application, this member determines if ICM is enabled or disabled. For ICM applications, Windows examines this member to determine how to handle ICM support. This member can be one of the following predefined values, or a driver-defined value greater than the value of DMICMMETHOD_USER:
Value |
Meaning |
DMICMMETHOD_NONE |
Windows 95 only: Specifies that ICM is disabled. |
DMICMMETHOD_SYSTEM |
Windows 95 only: Specifies that ICM is handled by Windows. |
DMICMMETHOD_DRIVER |
Windows 95 only: Specifies that ICM is handled by the device driver. |
DMICMMETHOD_DEVICE |
Windows 95 only: Specifies that ICM is handled by the destination device. |
The printer driver must provide a user interface for setting this member. Most printer drivers support only the DMICMMETHOD_SYSTEM or DMICMMETHOD_NONE value. Drivers for PostScript printers support all values.
Specifies which of the three possible color matching methods, or intents, should be used by default. This member is primarily for non-ICM applications. ICM applications can establish intents by using the ICM functions. This member can be one of the following predefined values, or a driver defined value greater than the value of DMICM_USER:
Value |
Meaning |
DMICM_SATURATE |
Windows 95 only: Color matching should optimize for color saturation. This value is the most appropriate choice for business graphs when dithering is not desired. |
DMICM_CONTRAST |
Windows 95 only: Color matching should optimize for color contrast. This value is the most appropriate choice for scanned or photographic images when dithering is desired. |
DMICM_COLORMETRIC |
Windows 95 only: Color matching should optimize to match the exact color requested. This value is most appropriate for use with business logos or other images when an exact color match is desired. |
Specifies the type of media being printed on. The member can be one of the following predefined values, or a driver-defined value greater than the value of DMMEDIA_USER:
Value |
Meaning |
DMMEDIA_STANDARD |
Windows 95 only: Plain paper. |
DMMEDIA_GLOSSY |
Windows 95 only: Glossy paper. |
DMMEDIA_TRANSPARENCY |
Windows 95 only: Transparent film. |
Specifies how dithering is to be done. The member can be one of the following predefined values, or a driver-defined value greater than the value of DMDITHER_USER:
Value |
Meaning |
DMDITHER_NONE |
Windows 95 only: No dithering. |
DMDITHER_COARSE |
Windows 95 only: Dithering with a coarse brush. |
DMDITHER_FINE |
Windows 95 only: Dithering with a fine brush. |
DMDITHER_LINEART |
Windows 95 only: Line art dithering, a special dithering method that produces well defined borders between black, white, and gray scalings. It is not suitable for images that include continuous graduations in intensisty and hue such as scanned photographs. |
DMDITHER_GRAYSCALE |
Windows 95 only: Device does grayscaling. |
Windows NT: This member is not supported on Windows NT.
Windows NT: This member is not supported on Windows NT.
A device driver's private data follows the public portion of the DEVMODE structure. The size of the public data can vary for different versions of the structure. The dmSize member specifies the number of bytes of public data, and the dmDriverExtra member specifies the number of bytes of private data.
AdvancedDocumentProperties, CreateDC, CreateIC, DeviceCapabilities, DocumentProperties, OpenPrinter
Questions: