DeviceCapabilities

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

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

DWORD DeviceCapabilities(

LPCTSTR 【pDevice】,//指向打印机名称字符串的指针
LPCTSTR 【pPort】,//指向port-name字符串的指针
WORD 【fwCapability】,//设备查询能力
LPTSTR 【POUTPUT】,//指向输出的指针
CONST DEVMODE *【pDevMode】//指向具有设备数据的结构的指针
); 

参数

【pDevice】

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

【pPort】

指向包含设备连接到的端口名称的空终止字符串的指针,例如“LPT1”。

【fwCapability】

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

含义
DC_BINADJUST仅Windows 95:检索由【pdevModeel-Latn】指向的DEVMODE结构中指定的纸张来源的页面定位。返回值可以是以下之一:
 DCBA_FACEUPNONE
 DCBA_FACEUPCENTER
 DCBA_FACEUPLEFT
 DCBA_FACEUPRIGHT
 DCBA_FACEDOWNNONE
 DCBA_FACEDOWNCENTER
 DCBA_FACEDOWNLEFT
 DCBA_FACEDOWNRIGHT
DC_BINNAMES复制一个包含纸盒名称列表的数组。此阵列的格式为烧焦 【PaperNames】 [【cBinMax】] [【cchBinName】],其中【cchBinName】为24。如果【POUTPUT】参数为NULL,则返回值是所需的bin条目数。否则,返回值是复制的数据块数。
DC_BINS检索可用仓的列表。该函数将列表复制到【POUTPUT】参数作为WORD数组。如果【POUTPUT】为NULL,则该函数返回支持的数据块数量,以允许应用程序分配正确大小的缓冲区。有关这些bin的更多信息,请参阅DEVMODE结构dmDefaultSource成员的描述。
DC_COPIES返回设备可以打印的份数。
DC_DRIVER返回打印机驱动程序的版本号。
DC_DATATYPE_PRODUCED仅Windows 95:返回值是打印机驱动程序支持的数据类型数。如果函数返回-1,则驱动程序只能理解“RAW”数据类型。受支持的数据类型的名称将复制到数组。调用StartDoc函数指定数据类型时,使用DOCINFO结构中的名称。
DC_DUPLEX返回双工支持级别。如果打印机能够双面打印,该函数将返回1。否则返回值为零。
DC_EMF_COMPLIANT仅Windows 95:确定打印机驱动程序是否支持增强型图元文件(EMF)。返回值为1表示驱动程序支持EMF。返回值为-1表示驱动程序不支持EMF
DC_ENUMRESOLUTIONS返回可用分辨率的列表。如果【POUTPUT】为NULL,则该函数返回可用的分辨率配置数。分辨率由表示水平和垂直分辨率(以英寸为单位指定)的LONG整数表示。
DC_EXTRA返回打印机驱动程序DEVMODE结构的设备特定部分所需的字节数。
DC_FIELDS返回打印机驱动程序DEVMODE结构的dmFieldsnobg-Latn成员。dmFieldsnobg-Latn成员指示打印机驱动程序支持与设备无关的部分中的哪些成员。
DC_FILEDEPENDENCIES返回驱动程序安装时还需要加载的文件列表。如果【POUTPUT】参数为NULL,则该函数返回文件数。否则,【POUTPUT】指向焦炭形式的文件名数组。每个文件名是一个以null结尾的字符串。
DC_MAXEXTENT返回POINTS结构,其中包含打印机驱动程序DEVMODE结构的dmPaperLengthdmPaperWidth成员可以指定的最大纸张大小。POINTS结构中的x成员包含最大值dmPaperWidthy成员包含最大值dmPaperLength.
DC_MINEXTENT返回POINTS结构,其中包含打印机驱动程序DEVMODE结构的dmPaperLengthdmPaperWidth成员可以指定的最小纸张尺寸。POINTS结构中的x成员包含最少dmPaperWidth值,y成员包含最小值dmPaperLength.
DC_ORIENTATION返回一个设备的纵向和横向方向之间的关系,以纵向方向逆时针旋转以产生横向方向的度数。返回值可以是以下之一:

含义
0没有横向。
90肖像被旋转90度以产生风景。(例如,惠普PCL打印机。)
270肖像旋转270度,产生风景。(例如,点阵式打印机)

DC_PAPERNAMES检索支持的纸张名称列表(例如Letter或Legal)。如果【POUTPUT】参数为NULL,则该函数返回可用的纸张数量。否则,【POUTPUT】指向焦炭{} 989796009形式的纸张名称的数组。每个纸张名称是一个以null结尾的字符串。
DC_PAPERS检索支持的纸张尺寸列表。该函数将列表复制为【POUTPUT】作为WORD数组,并返回数组中的条目数。如果【POUTPUT】为NULL,则该函数返回支持的纸张大小数,以便应用程序有机会分配正确大小的缓冲区。有关纸张尺寸的更多信息,请参阅DEVMODE结构dmPaperSize成员的说明。
DC_PAPERSIZE将所有支持的纸张尺寸(十分之一毫米)的尺寸复制到【POUTPUT】参数指向的POINT结构的阵列。纸张尺寸的宽度(x维度)和长度(y维度)将返回,就像纸张处于DMORIENT_PORTRAIT方向。
DC_SIZE返回打印机驱动程序DEVMODE结构的dmsiz到成员。
DC_TRUETYPE检索驱动程序使用TrueType字体的能力。对于DC_TRUETYPE,【POUTPUT】参数应为NULL。返回值可以是以下一个或多个:

含义
DCTT_BITMAP设备可以将TrueType字体打印为图形。(例如,点阵和PCL打印机。)
DCTT_DOWNLOAD设备可以下载TrueType字体。(例如,PCL和PostScript打印机。)
DCTT_DOWNLOAD_
OUTLINE
仅Windows 95:设备可以下载大纲TrueType字体。
DCTT_SUBDEV设备可以将设备字体替换为TrueType字体。(例如,PostScript打印机。)

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

【POUTPUT】

指向字节数组。数组的格式取决于【fwCapability】??参数的设置。如果【POUTPUT】为零,则DeviceCapabilities返回输出数据所需的字节数。

【pDevMode】

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

返回值

如果功能成功,返回值取决于【fwCapability】参数的设置。

如果函数失败,返回值为-1。

备注

在以前的Windows版本中,DeviceCapabilities功能在打印机驱动程序中实现,您需要调用LoadLibraryGetProcAddress函数来获取指向该函数的指针。这不再需要,因为DeviceCapabilities是Win32 API的一部分,您可以直接调用它。您不应该在打印机驱动程序上调用LoadLibrary.

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

也可以看看

DEVMODE, DocumentProperties, GetDeviceCaps, GetProcAddress, LoadLibrary, POINT