DEVMODE

【勇芳软件工作室】汉化HomePreviousNext

DEVMODE数据结构包含有关设备初始化和打印机环境的信息。

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

DWORD dmICMIntent; //仅Windows 95

DWORD dmMediaType; //仅Windows 95

DWORD dmDitherType; //仅Windows 95

DWORD dmReserved1; //仅Windows 95

DWORD dmReserved2; //仅Windows 95

#endif /* WINVER >= 0x0400 */

} DEVMODE;

会员

dmDeviceName

指定打印机的“友好”名称;在PCL / HP LaserJet的情况下,例如“PCL / HP LaserJet”。该字符串在设备驱动程序中是唯一的。请注意,此名称可能会被截断以符合dmDeviceName数组。

dmSpecVersion

指定结构所基于的初始化数据规范的版本号。

dmDriverVersion

指定打印机驱动程序开发者分配的打印机驱动程序版本号。

dmsiz到

指定DEVMODE结构的大小(以字节为单位),不包括可能遵循结构公共成员的任何私有驱动程序特定的数据。您可以使用此成员来确定公共数据的字节数,而不管使用的DEVMODE结构的版本。

dmDriverExtra

包含跟随此结构的专用驱动程序数据的字节数。如果设备驱动程序不使用设备特定的信息,请将此成员设置为零。

dmFieldsnobg-Latn

一组位标志,指定DEVMODE结构的某些成员是否已初始化。如果一个字段被初始化,则其相应的位标志被置位,否则位标志清零。打印机驱动程序仅支持适合打印机技术的DEVMODE结构成员。

定义了以下位标志,并在此列出与相应的结构成员:

结构成员
DM_ORIENTATIONdmOrientation
DM_PAPERSIZEdmPaperSize
DM_PAPERLENGTHdmPaperLength
DM_PAPERWIDTHdmPaperWidth
DM_SCALEdmScale
DM_COPIESdmCopies
DM_DEFAULTSOURCEdmDefaultSource
DM_PRINTQUALITYdmPrintQuality
DM_COLORdmColor
DM_DUPLEXdmDuplex
DM_YRESOLUTIONdmYResolution
DM_TTOPTIONdmTTOption
DM_COLLATEdmCollat?? ??ê
DM_FORMNAMEdmFormName
DM_LOGPIXELSdmLogPixels
DM_BITSPERPELdmBitsPerPel
DM_PELSWIDTHdmPelsWidth
DM_PELSHEIGHTdmPelsHeight
DM_DISPLAYFLAGSdmDisplayFlags
DM_DISPLAYFREQUENCYdmDisplayFrequency
DM_ICMMETHOD仅Windows 95:dmICMMethod
DM_ICMINTENT仅Windows 95:dmICMIntent
DM_MEDIATYPE仅Windows 95:dmMediaType
DM_DITHERTYPE仅Windows 95:dmDitherType

dmOrientation

选择纸张的方向。该成员可以是DMORIENT_PORTRAIT(1)或DMORIENT_LANDSCAPE(2)。

dmPaperSize

选择要打印的纸张的大小。如果纸张的长度和宽度都由dmPaperLengthdmPaperWidth成员设置,则该成员可以设置为零。否则,可以将dmPaperSize成员设置为以下预定义值之一:

含义
DMPAPER_LETTER信,8 1 / 2-乘11英寸
DMPAPER_LEGAL法定,8 1 / 2-乘14英寸
DMPAPER_A4A4纸,210-297毫米
DMPAPER_CSHEETC纸,17- 22寸
DMPAPER_DSHEET22张,34英寸
DMPAPER_ESHEETE Sheet,34-44英寸
DMPAPER_LETTERSMALL字母小,8 1 / 2-乘11英寸
DMPAPER_TABLOID小报,11- 17英寸
DMPAPER_LEDGER分类帐,17英寸×11寸
DMPAPER_STATEMENT声明,5 1 / 2-乘8 1/2英寸
DMPAPER_EXECUTIVE执行,7 1 / 4-乘10 1/2英寸
DMPAPER_A3A3纸,297- 420毫米
DMPAPER_A4SMALLA4小片,210-297毫米
DMPAPER_A5A5片,148- 210毫米
DMPAPER_B4B4纸,250-344毫米
DMPAPER_B5B5片,182-257毫米纸
DMPAPER_FOLIO对开,8 1 / 2- 13英寸纸
DMPAPER_QUARTOQuarto,215-275毫米纸
DMPAPER_10X1410到14英寸的纸张
DMPAPER_11X1711英寸×17英寸的纸张
DMPAPER_NOTE注意,8 1 / 2-乘11英寸
DMPAPER_ENV_9#9信封,3 7 / 8-乘8 7/8英寸
DMPAPER_ENV_10#10信封,4 1 / 8-乘9 1/2英寸
DMPAPER_ENV_11#11信封,4 1 / 2-乘10 3/8英寸
DMPAPER_ENV_12#12信封,4 3 / 4-乘11英寸
DMPAPER_ENV_14#14信封,5-加11 1/2英寸
DMPAPER_ENV_DLDL信封,110- 220毫米
DMPAPER_ENV_C5C5信封,162- 229毫米
DMPAPER_ENV_C3C3信封,324-458毫米
DMPAPER_ENV_C4C4信封,229-324毫米
DMPAPER_ENV_C6C6信封,114- 162毫米
DMPAPER_ENV_C65C65信封,114-292毫米
DMPAPER_ENV_B4B4信封,由250?353毫米
DMPAPER_ENV_B5B5信封,176- 250毫米
DMPAPER_ENV_B6B6信封,176-125毫米
DMPAPER_ENV_ITALY意大利信封,110 - 230毫米
DMPAPER_ENV_MONARCH君主信封,3 7 / 8-乘7 1/2英寸
DMPAPER_ENV_PERSONAL6 3/4信封,3 5 / 8-乘6 1/2英寸
DMPAPER_FANFOLD_US美国标准Fanfold,14 7 / 8-乘11英寸
DMPAPER_FANFOLD_STD_GERMAN德国标准Fanfold,8 1 / 2-乘12英寸
DMPAPER_FANFOLD_LGL_GERMAN德国Legal Fanfold,8 1 / 2-乘13英寸

dmPaperLength

覆盖由dmPaperSize成员指定的纸张的长度,用于自定义纸张尺寸或可以在任意长度的页面上打印的点阵式打印机等设备。这些值以及该结构中指定物理长度的所有其他值都在十分之一毫米。

dmPaperWidth

覆盖由dmPaperSize成员指定的纸张的宽度。

dmScale

指定要缩放打印输出的因子。明显的页面大小从物理页面大小缩放系数dmScale / 100。例如,dmScale值为50的字母大小的页面将包含与17-22英寸页面相同的数据,因为输出文本和图形将是其原始高度和宽度的一半。

dmCopies

如果设备支持多页复印,则选择打印份数。

dmDefaultSource

Reserved; must be zero.

dmPrintQuality

指定打印机分辨率。有四个预定义的与设备无关的值:

DMRES_HIGH
DMRES_MEDIUM
DMRES_LOW
DMRES_DRAFT

如果给出正值,它指定每英寸点数(DPI),因此与设备有关。

dmColor

在彩色打印机上切换彩色和单色。以下是可能的值:

DMCOLOR_COLOR
DMCOLOR_MONOCHROME

dmDuplex

为能够双面打印的打印机选择双面打印或双面打印。以下是可能的值:

DMDUP_SIMPLEX
DMDUP_HORIZONTAL
DMDUP_VERTICAL

dmYResolution

指定打印机的y分辨率(以英寸为单位)。如果打印机初始化此成员,则dmPrintQuality成员将以打印机的每英寸点数指定x分辨率。

dmTTOption

指定应如何打印TrueType字体。该成员可以是以下值之一:

含义
DMTT_BITMAP将TrueType字体打印为图形。这是点阵式打印机的默认动作。
DMTT_DOWNLOAD将TrueType字体下载为软字体。这是使用打印机控制语言(PCL)的Hewlett-Packard打印机的默认操作。
DMTT_SUBDEV替换TrueType字体的设备字体。这是PostScript打印机的默认操作。

dmUnusedPadding

用于将结构对齐到DWORD边界。这不应该被使用或引用。保留其名称和用法,并在将来的版本中更改。

dmCollat?? ??ê

指定打印多个副本时是否应使用归类。(除非打印机驱动程序通过将dmFieldsnobg-Latn成员设置为DM_COLLATE来指示排序规则,否则将忽略此成员。)该成员可以是以下值之一:

含义
DMCOLLATE_TRUE打印多份副本时整理。
DMCOLLATE_FALSE打印多份时不要整理。

使用DMCOLLATE_TRUE可以提供更快,更高效的排序规则输出,因为数据只发送到设备驱动程序一次,无论需要多少副本。该打印机被告知要再次打印页面。

dmFormName

Windows NT:指定要使用的表单的名称;例如“信”或“法定”。可以使用EnumForms功能检索一组完整的名称。

Windows 95:打印机驱动程序不使用此成员。

dmLogPixels

指定每个逻辑英寸的像素数。打印机驱动程序不使用此成员。

dmBitsPerPel

指定显示设备的颜色分辨率(以像素为单位)(例如:16种颜色为4位,256色为8位,65536色为16位)。显示驱动程序使用此成员,例如,在ChangeDisplaySettings功能中。打印机驱动程序不使用此成员。

dmPelsWidth

指定可见设备表面的宽度(以像素为单位)。显示驱动程序使用此成员,例如,在ChangeDisplaySettings功能中。打印机驱动程序不使用此成员。

dmPelsHeight

指定可见设备表面的高度(以像素为单位)。显示驱动程序使用此成员,例如,在ChangeDisplaySettings功能中。打印机驱动程序不使用此成员。

dmDisplayFlags

指定设备的显示模式。该成员可以是以下值之一:

含义
DM_GRAYSCALE指定显示器是非彩色设备。如果未设置此标志,则假定为颜色。
DM_INTERLACED指定显示模式是隔行扫描。如果未设置标志,则假定为非隔行扫描。

显示驱动程序使用此成员,例如,在ChangeDisplaySettings功能中。打印机驱动程序不使用此成员。

dmDisplayFrequency

以特定模式指定显示设备的频率,单位为赫兹(每秒的周期数)。该值也称为显示设备的垂直刷新率。显示驱动程序使用此成员。例如,它在ChangeDisplaySettings功能中使用。打印机驱动程序不使用此成员。

调用EnumDisplaySettings函数时,dmDisplayFrequency成员返回值为0或1。这些值表示显示硬件的默认刷新率。此默认速率通常由显示卡或计算机主板上的开关或不使用Win32显示功能的配置程序(如ChangeDisplaySettings)设置。

dmICMMethod

Windows 95:

指定如何处理ICM。对于非ICM应用程序,此成员确定ICM是启用还是禁用。对于ICM应用程序,Windows会检查此成员以确定如何处理ICM支持。该成员可以是以下预定义值之一,或大于DMICMMETHOD_USER的值的驱动程序定义值:

含义
DMICMMETHOD_NONE仅Windows 95:指定ICM被禁用。
DMICMMETHOD_SYSTEM仅Windows 95:指定ICM由Windows处理。
DMICMMETHOD_DRIVER仅Windows 95:指定ICM由设备驱动程序处理。
DMICMMETHOD_DEVICE仅Windows 95:指定ICM由目标设备处理。

打印机驱动程序必须提供用于设置此成员的用户界面。大多数打印机驱动程序仅支持DMICMMETHOD_SYSTEM或DMICMMETHOD_NONE值。PostScript打印机的驱动程序支持所有值。

Windows NT:

Windows NT上不支持此成员。

dmICMIntent

Windows 95:

指定默认情况下应使用三种可能的颜色匹配方法或意图中的哪一种。该成员主要用于非ICM应用程序。ICM应用程序可以通过使用ICM功能来建立意图。该成员可以是以下预定义值之一,或者大于DMICM_USER的值的驱动程序定义值:

含义
DMICM_SATURATE仅Windows 95:颜色匹配应优化色彩饱和度。当不希望进行抖动时,该值是商业图表中最合适的选择。
DMICM_CONTRAST仅Windows 95:颜色匹配应优化颜色对比度。当需要抖动时,该值是扫描或摄影图像最合适的选择。
DMICM_COLORMETRIC仅Windows 95:颜色匹配应优化以匹配所请求的确切颜色。当需要确切的颜色匹配时,此值最适合用于商业标志或其他图像。

Windows NT:

Windows NT上不支持此成员。

dmMediaType

Windows 95:

指定要打印的介质类型。该成员可以是以下预定义值之一,或者大于DMMEDIA_USER的值的驱动程序定义值:

含义
DMMEDIA_STANDARD仅Windows 95:普通纸。
DMMEDIA_GLOSSY仅Windows 95:光面纸。
DMMEDIA_TRANSPARENCY透明膜仅Windows 95:

Windows NT:

Windows NT上不支持此成员。

dmDitherType

Windows 95:

指定如何进行抖动。该成员可以是以下预定义值之一,或者大于DMDITHER_USER的值的驱动程序定义值:

含义
DMDITHER_NONE仅Windows 95:没有抖动。
DMDITHER_COARSE仅Windows 95:使用粗刷进行抖动。
DMDITHER_FINE仅Windows 95:用精细的刷子进行抖动。
DMDITHER_LINEART仅Windows 95:线条艺术抖动,一种特殊的抖动方法,可在黑色,白色和灰色缩放之间产生明确的边界。它不适用于包含强烈连续刻度和色相(如扫描照片)的图像。
DMDITHER_GRAYSCALE仅Windows 95:设备执行灰度调整。

Windows NT:

Windows NT上不支持此成员。

dmReserved1

Windows 95:Not used; must be zero.

Windows NT: Windows NT上不支持此成员。

dmReserved2

Windows 95:Not used; must be zero.

Windows NT: Windows NT上不支持此成员。

备注

设备驱动程序的私有数据遵循DEVMODE结构的公开部分。对于不同版本的结构,公共数据的大小可能会有所不同。dmsiz到成员指定公共数据的字节数,dmDriverExtra成员指定私有数据的字节数。

也可以看看

AdvancedDocumentProperties, CreateDC, CreateIC, DeviceCapabilities, DocumentProperties, OpenPrinter