Windows 3.1 Device Drivers (ddag31qh.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
DEVMODE
◄Up► ◄Next► ◄Previous►
────────────────────────────────────────────────────────────────────────────
typedef struct _devicemode { /* dm */
char 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;
} DEVMODE;
The DEVMODE structure contains information about a printer driver's
initialization and environment. An application passes this structure to the
DeviceCapabilities and ExtDeviceMode functions.
Member Description
────────────────────────────────────────────────────────────────────────────
dmDeviceName Specifies the name of the device the driver supports──for
example, "HP LaserJet III" in the case of the
Hewlett-Packard LaserJet III.
dmSpecVersion Specifies the version number of the DEVMODE structure. For
Windows version 3.1, this value should be 0x30A.
dmDriverVersion Specifies the assigned printer driver version number.
dmSize Specifies the size, in bytes, of the DEVMODE structure.
(This value does not include the optional dmDriverData
member for device-specific data, which can follow the
structure.) If an application manipulates only the
driver-independent portion of the data, it can use this
member to find out the length of the structure without
having to account for different versions.
dmDriverExtra Specifies the size, in bytes, of the optional dmDriverData
member for device-specific data, which can follow the
structure. If an application does not use device-specific
information, it should set this member to zero.
dmFields Specifies a value that indicates which of the remaining
members in the DEVMODE structure have been initialized. It
can be any combination (or it can be none) of the following
values.
Constant Value
───────────────────────────────────────────────────────────
DM_ORIENTATION 0x0000001L
DM_PAPERSIZE 0x0000002L
DM_PAPERLENGTH 0x0000004L
DM_PAPERWIDTH 0x0000008L
DM_SCALE 0x0000010L
DM_COPIES 0x0000100L
DM_DEFAULTSOURCE 0x0000200L
DM_PRINTQUALITY 0x0000400L
DM_COLOR 0x0000800L
DM_DUPLEX 0x0001000L
DM_YRESOLUTION 0x0002000L
DM_TTOPTION 0x0004000L
A printer driver supports only those members that are
appropriate for the printer technology.
dmOrientation Specifies the orientation of the paper. It can be either
DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE.
dmPaperSize Specifies the size of the paper to print on. This member
may be set to zero if the length and width of the paper are
specified by the dmPaperLength and dmPaperWidth members,
respectively. Otherwise, the dmPaperSize member can be set
to one of the following predefined values.
Value Meaning
───────────────────────────────────────────────────────────
DMPAPER_10x14 10 x 14 inches
DMPAPER_11x17 11 x 17 inches
DMPAPER_A3 A3 297 x 420 millimeters
DMPAPER_A4 A4 210 x 297 millimeters
DMPAPER_A4_EXTRA A4 Extra 9.27 x 12.69
inches
DMPAPER_A4_TRANSVERSE Transverse 297 x 210
millimeters
DMPAPER_A4SMALL A4 Small 210 x 297
millimeters
DMPAPER_A5 A5 148 x 210 millimeters
DMPAPER_B4 B4 250 x 354 millimeters
DMPAPER_B5 B5 182 x 257 millimeters
DMPAPER_CSHEET C size sheet
DMPAPER_DSHEET D size sheet
DMPAPER_ENV_10 Envelope #10 4.125 x 9.5
inches
DMPAPER_ENV_11 Envelope #11 4.5 x 10.375
inches
DMPAPER_ENV_12 Envelope #12 4.75 x 11
inches
DMPAPER_ENV_14 Envelope #14 5 x 11.5
inches
DMPAPER_ENV_9 Envelope #9 3.875 x 8.875
inches
DMPAPER_ENV_C5 Envelope C5 162 x 229
millimeters
DMPAPER_ENV_DL Envelope DL 110 x 220
millimeters
DMPAPER_ENV_MONARCH Envelope Monarch 3.875 x
7.5 inches
DMPAPER_ESHEET E size sheet
DMPAPER_EXECUTIVE Executive 7.25 x 10.5
inches
DMPAPER_FIRST Letter 8.5 x 11 inches
DMPAPER_FOLIO Folio 8.5 x 13 inches
DMPAPER_LAST Letter Extra Transverse 12
x 9.5 inches
DMPAPER_LEDGER Ledger 11 x 17 inches
DMPAPER_LEGAL Legal 8.5 x 14 inches
DMPAPER_LEGAL_EXTRA Legal Extra 9.5 x 15
inches
DMPAPER_LETTER Letter 8.5 x 11 inches
DMPAPER_LETTER_EXTRA Letter Extra 9.5 x 12
inches
DMPAPER_LETTER_EXTRA_TRANSVERSE Letter Extra Transverse 12
x 9.5 inches
DMPAPER_LETTER_TRANSVERSE Letter Transverse 11 x 8.5
inches
DMPAPER_LETTERSMALL Letter Small 8.5 x 11
inches
DMPAPER_NOTE Note 8.5 x 11 inches
DMPAPER_QUARTO Quarto 215 x 275
millimeters
DMPAPER_STATEMENT Statement 5.5 x 8.5
inches
DMPAPER_TABLOID Tabloid 11 x 17 inches
DMPAPER_TABLOID_EXTRA Tabloid Extra 11.69 x 18
inches
DMPAPER_USER User defined
dmPaperLength Specifies a paper length, in tenths of a millimeter. This
member overrides the paper length specified by the
dmPaperSize member, either for custom paper sizes or for
such devices as dot-matrix printers that can print on a
variety of page sizes.
dmPaperWidth Specifies a paper width, in tenths of a millimeter. This
member overrides the paper width specified by the
dmPaperSize member.
dmScale Specifies the factor by which the printed output is to be
scaled. The apparent page size is scaled from the physical
page size by a factor of dmScale/100. For example, a
letter-size paper with a dmScale value of 50 would contain
as much data as a page of size 17x22 inches because the
output text and graphics would be half their original
height and width.
dmCopies Specifies the number of copies printed if the device
supports multiple-page copies.
dmDefaultSource Specifies the default bin from which the paper is fed. The
application can override this value by using the
GETSETPAPERBINS escape. This member can be one of the
following values.
DMBIN_AUTO
DMBIN_CASSETTE
DMBIN_ENVELOPE
DMBIN_ENVMANUAL
DMBIN_FIRST
DMBIN_LARGECAPACITY
DMBIN_LARGEFMT
DMBIN_LAST
DMBIN_LOWER
DMBIN_MANUAL
DMBIN_MIDDLE
DMBIN_ONLYONE
DMBIN_SMALLFMT
DMBIN_TRACTOR
DMBIN_UPPER
A range of values is reserved for device-specific bins. To
be consistent with initialization information, the
GETSETPAPERBINS and ENUMPAPERBINS escapes use these
values.
dmPrintQuality Specifies the printer resolution. Following are the four
predefined device-independent values:
DMRES_HIGH (-4)
DMRES_MEDIUM (-3)
DMRES_LOW (-2)
DMRES_DRAFT (-1)
If a positive value is given, it specifies the number of
dots per inch (DPI) and is therefore device dependent.
If the printer initializes the dmYResolution member, the
dmPrintQuality member specifies the x-resolution of the
printer, in dots per inch.
dmColor Specifies whether a color printer is to render color or
monochrome output. Possible values are:
DMCOLOR_COLOR (1)
DMCOLOR_MONOCHROME (2)
dmDuplex Specifies duplex (double-sided) printing for printers
capable of duplex printing. This member can be one of the
following values:
DMDUP_SIMPLEX (1)
DMDUP_HORIZONTAL (2)
DMDUP_VERTICAL (3)
dmYResolution Specifies the y-resolution of the printer, in dots per
inch. If the printer initializes this member, the
dmPrintQuality member specifies the x-resolution of the
printer, in dots per inch.
dmTTOption Specifies how TrueType fonts should be printed. It can be
one of the following values.
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 Substitutes device fonts for TrueType fonts.
This is the default action for PostScript
printers.
Comments
An application can retrieve the paper sizes and names supported by a printer
by calling the DeviceCapabilities function with the DC_PAPERS, DC_PAPERSIZE,
and DC_PAPERNAMES values.
Before setting the value of the dmTTOption member, applications should find
out how a printer driver can use TrueType fonts by calling the
DeviceCapabilities function with the DC_TRUETYPE value.
Drivers can add device-specific data immediately following the DEVMODE
structure.
See Also
DeviceCapabilities, ExtDeviceMode
♦