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结构的dmPaperLength和dmPaperWidth成员可以指定的最大纸张大小。POINTS结构中的x成员包含最大值dmPaperWidth,y成员包含最大值dmPaperLength. |
DC_MINEXTENT | 返回POINTS结构,其中包含打印机驱动程序DEVMODE结构的dmPaperLength和dmPaperWidth成员可以指定的最小纸张尺寸。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功能在打印机驱动程序中实现,您需要调用LoadLibrary和GetProcAddress函数来获取指向该函数的指针。这不再需要,因为DeviceCapabilities是Win32 API的一部分,您可以直接调用它。您不应该在打印机驱动程序上调用LoadLibrary.
【pDevMode】参数指向的DEVMODE结构可以通过调用DocumentProperties函数获得。
也可以看看
DEVMODE, DocumentProperties, GetDeviceCaps, GetProcAddress, LoadLibrary, POINT