勇芳软件工作室.汉化:  Printing > GDI Print API > GDI Print API Functions >

DeviceCapabilities

Previous pageReturn to chapter overviewNext page

描述

 

DeviceCapabilities功能可检索打印机设备驱动程序的功能。

 

C++ 语法

 

DWORD DeviceCapabilities(

__in  LPCTSTR pDevice,

__in  LPCTSTR pPort,

__in  WORD fwCapability,

__out LPTSTR pOutput,

__in  const DEVMODE *pDevMode

);

 

PowerBASIC 语法

 

FUNCTION DeviceCapabilitiesA ( _

BYREF pDevice AS ASCIIZ, _

BYREF pPort AS ASCIIZ, _

BYVAL fwCapability AS WORD, _

BYREF pOutput AS ASCIIZ, _

BYREF pDevMode AS DEVMODEA _

) AS DWORD

 

Unicode版本:

 

FUNCTION DeviceCapabilitiesW ( _

BYREF pDevice AS WSTRINGZ, _

BYREF pPort AS WSTRINGZ, _

BYVAL fwCapability AS WORD, _

BYREF pOutput AS WSTRINGZ, _

BYREF pDevMode AS DEVMODEW _

) AS DWORD

 

参数

 

pDevice

 

[in]指向包含打印机名称的以null结尾的字符串的指针。请注意,这是打印机的名称,而不是打印机驱动程序。

 

pPort

 

[in]指向包含连接设备的端口名称(例如LPT1)的以null结尾的字符串的指针。

 

fwCapability

 

[in]指定要查询的功能。此参数可以是以下值之一。

 

DC_BINADJUST

 

Windows 95/98 / Me:检索由pdevMode指向的DEVMODE结构中指定的纸张来源的页面定位。返回值可以是以下之一:

 

DCBA_FACEUPNONE

DCBA_FACEUPCENTER

DCBA_FACEUPLEFT

DCBA_FACEUPRIGHT

DCBA_FACEDOWNNONE

DCBA_FACEDOWNCENTER

DCBA_FACEDOWNLEFT

DCBA_FACEDOWNRIGHT

 

Windows NT / 2000 / XP / Vista / Windows 7:不支持。

 

DC_BINNAMES

 

检索打印机纸盒的名称。POUTPUT缓冲区接收一个字符串缓冲区数组。每个字符串缓冲区长度为24个字符,并包含纸盒的名称。返回值表示数组中的条目数。名称字符串为空终止,除非该名称为24个字符长。如果POUTPUT为NULL,则返回值是所需的bin条目数。

 

DC_BINS

 

检索可用纸盒的列表。POUTPUT缓冲区接收一组WORD值,表示打印机可用的纸张来源。返回值表示数组中的条目数。有关可能的数组值的列表,请参阅DEVMODE结构dmDefaultSource成员的描述。如果pOutput为NULL,则返回值表示数组中所需的条目数。

 

DC_COLLATE

 

如果打印机支持整理,返回值为1; 否则返回值为零。不使用POUTPUT参数。

 

DC_COLORDEVICE

 

Windows 2000 / XP / Vista / Windows 7:如果打印机支持彩色打印,返回值为1;否则返回值为零。不使用POUTPUT参数。

 

DC_COPIES

 

返回设备可以打印的份数。

 

DC_DRIVER

 

返回打印机驱动程序的版本号。

 

DC_DATATYPE_PRODUCED

 

Windows 95/98 / Me:返回值是打印机驱动程序支持的数据类型数。如果函数返回-1,则驱动程序仅识别“RAW”数据类型。支持的数据类型的名称将复制到数组。调用StartDoc函数指定数据类型时,使用DOCINFO结构中的名称。

 

Windows NT / 2000 / XP / Vista / Windows 7:不支持。

 

DC_DUPLEX

 

如果打印机支持双面打印,则返回值为1; 否则返回值为零。不使用POUTPUT参数。

 

DC_EMF_COMPLIANT

 

Windows 95/98 / Me:确定打印机驱动程序是否支持增强型图元文件(EMF)。返回值为1表示驱动程序支持EMF。返回值为-1表示驱动程序不支持EMF。

 

Windows NT / 2000 / XP / Vista / Windows 7:不支持。

 

DC_ENUMRESOLUTIONS

 

检索打印机支持的分辨率列表。pOutput缓冲区接收LONG值的数组。对于每个支持的分辨率,阵列包含一对LONG值,以像素为单位指定分辨率的x和y维度。返回值表示支持的分辨率的数量。如果POUTPUT为NULL,则返回值表示支持的分辨率数。

 

DC_EXTRA

 

返回打印机驱动程序的DEVMODE结构的设备特定部分所需的字节数。

 

DC_FIELDS

 

返回打印机驱动程序的DEVMODE结构的dmFields成员。dmFields成员指示打印机驱动程序支持该设备与设备无关的部分中的哪些成员。

 

DC_FILEDEPENDENCIES

 

检索安装驱动程序时需要加载的任何其他文件的名称。pOutput缓冲区接收一个字符串缓冲区数组。每个字符串缓冲区长度为64个字符,并包含文件的名称。返回值表示数组中的条目数。名称字符串为空终止,除非该名称长度为64个字符。如果pOutput为NULL,则返回值为文件数。

 

DC_MANUFACTURER

 

Windows 95/98 / Me:返回值是打印机制造商的标识号。该值与图像颜色管理(ICM)一起使用。

 

Windows NT / 2000 / XP / Vista / Windows 7:不支持。

 

DC_MAXEXTENT

 

返回打印机驱动程序DEVMODE结构的dmPaperLengthdmPaperWidth成员可以指定的最大纸张尺寸。返回值的LOWORD包含最大值dmPaperWidthHIWORD包含最大值dmPaperLength.

 

DC_MEDIAREADY

 

Windows 2000 / XP / Vista / Windows 7:检索当前可用的纸张表单的名称。POUTPUT缓冲区接收一个字符串缓冲区数组。每个字符串缓冲区长度为64个字符,并包含纸张表单的名称。返回值表示数组中的条目数。名称字符串为空终止,除非该名称长度为64个字符。如果pOutput为NULL,则返回值为纸张数量。

 

DC_MEDIATYPENAMES

 

Windows XP / Vista / Windows 7:检索支持的媒体类型的名称。POUTPUT缓冲区接收一个字符串缓冲区数组。每个字符串缓冲区长度为64个字符,并包含支持的媒体类型的名称。返回值表示数组中的条目数。字符串为空终止,除非该名称为64个字符长。如果POUTPUT为NULL,则返回值是所需的介质类型名称数。

 

DC_MEDIATYPES

 

Windows XP / Vista / Windows 7:检索支持的媒体类型的列表。POUTPUT缓冲区接收一系列DWORD值,表示支持的媒体类型。返回值表示数组中的条目数。有关可能的数组值的列表,请参阅DEVMODE??结构dmMediaType成员的说明。如果POUTPUT为NULL,则返回值表示数组中所需的条目数。

 

DC_MINEXTENT

 

返回打印机驱动程序DEVMODE结构的dmPaperLengthdmPaperWidth成员可以指定的最小纸张尺寸。返回值的LOWORD包含最小值dmPaperWidthHIWORD包含最小值dmPaperLength.

 

DC_MODEL

 

Windows 95/98 / Me:返回值是打印机型号的标识。该值与图像颜色管理(ICM)一起使用。

 

Windows NT / 2000 / XP / Vista / Windows 7:不支持

 

DC_ORIENTATION

 

返回一个设备的纵向和横向方向之间的关系,以纵向方向逆时针旋转以产生横向方向的度数。返回值可以是以下之一:

 

0无横向。

90人像旋转90度以产生风景。

270人像旋转270度以产生风景。

 

DC_NUP

 

Windows 2000 / XP / Vista / Windows 7:检索整数数组,表示打印机能够在每个打印页面上打印多个文档页面。POUTPUT缓冲区接收DWORD值的数组。每个值表示每个打印页面支持的文档页数。返回值表示数组中的条目数。如果POUTPUT为NULL,则返回值表示数组中所需的条目数。

 

DC_PAPERNAMES

 

检索支持的纸张名称列表(例如Letter或Legal)。POUTPUT缓冲区接收一个字符串缓冲区数组。每个字符串缓冲区长度为64个字符,并包含纸张表单的名称。返回值表示数组中的条目数。名称字符串为空终止,除非该名称长度为64个字符。如果POUTPUT为NULL,则返回值是纸张表单的数量。

 

DC_PAPERS

 

检索支持的纸张尺寸列表。POUTPUT缓冲区接收一组WORD值,表示打印机可用的纸张尺寸。返回值表示数组中的条目数。有关可能的数组值的列表,请参阅DEVMODE结构dmPaperSize成员的描述。如果POUTPUT为NULL,则返回值表示数组中所需的条目数。

 

DC_PAPERSIZE

 

检索每个支持的纸张尺寸的十分之一毫米的尺寸。POUTPUT缓冲区接收POINT结构的数组。每个结构包含纸张尺寸的宽度(x维)和长度(y维度),就像纸张处于DMORIENT_PORTRAIT方向。返回值表示数组中的条目数。

 

DC_PERSONALITY

 

Windows 2000 / XP / Vista / Windows 7:检索打印机支持的打印机描述语言列表。POUTPUT缓冲区接收一个字符串缓冲区数组。每个缓冲区长度为32个字符,并包含打印机描述语言的名称。返回值表示数组中的条目数。名称字符串为空终止,除非该名称的长度为32个字符。如果POUTPUT为NULL,则返回值表示所需的数组条目数。

 

DC_PRINTERMEM

 

Windows 2000 / XP / Vista / Windows 7:返回值是可用的打印机内存量,单位为千字节。不使用POUTPUT参数。

 

DC_PRINTRATE

 

Windows 2000 / XP / Vista / Windows 7:返回值表示打印机的打印速度。为DC_PRINTRATEUNIT返回的值表示DC_PRINTRATE值的单位。不使用POUTPUT参数。

 

DC_PRINTRATEPPM

 

Windows 2000 / XP / Vista / Windows 7:返回值表示打印机的打印速度,以分页为单位。不使用POUTPUT参数。

 

DC_PRINTRATEUNIT

 

Windows 2000 / XP / Vista / Windows 7:返回值是以下值之一,表示为DC_PRINTRATE标志返回的值的打印速率单位。不使用POUTPUT参数。

 

PRINTRATEUNIT_CPS

每秒字符数

PRINTRATEUNIT_IPM

英寸每分钟。

PRINTRATEUNIT_LPM

每分钟线

PRINTRATEUNIT_PPM

每分钟页数

 

DC_SIZE

 

返回打印机驱动程序的DEVMODE结构的dmSize成员。

 

DC_STAPLE

 

Windows 2000 / XP / Vista / Windows 7:如果打印机支持装订,则返回值为非零值;否则返回值为零。不使用POUTPUT参数。

 

DC_TRUETYPE

 

检索驱动程序使用TrueType字体的能力。对于DC_TRUETYPE,POUTPUT参数应为NULL。返回值可以是以下一个或多个:

 

DCTT_BITMAP

设备可以将TrueType字体打印为图形。

DCTT_DOWNLOA

DDevice可以下载TrueType字体。

DCTT_DOWNLOAD_OUTLINE

Windows 95/98 / Me:设备可以下载大纲TrueType字体。

DCTT_SUBDEV

设备可以将设备字体替换为TrueType字体。

 

DC_VERSION

 

返回打印机驱动程序符合的规格版本。

 

pOutput

 

[out]指向数组的指针。数组的格式取决于fwCapability参数的设置。如果POUTPUT为NULL,则DeviceCapabilities返回输出数据所需的字节数。

 

pDevMode

 

[in]指向DEVMODE结构的指针。如果此参数为NULL,则DeviceCapabilities将检索指定打印机驱动程序的当前默认初始化值。否则,函数将检索pDevMode指向的结构中包含的值。

 

返回值

 

如果函数成功,则返回值取决于fwCapability参数的设置。返回值为零通常表示当功能成功完成时,存在某种类型的故障,例如不支持的功能。有关详细信息,请参阅fwCapability值的说明。

 

如果函数返回-1,这可能意味着该函数不受支持或一般功能失败。

 

备注

 

DEVMODE参数指向的DEVMODE结构可以通过调用DocumentProperties函数获得。

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)