API函数详解:DeviceCapabilities函数

Windows API函数 Visual Basic 语法格式声明
Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, ByVal lpOutput As String, lpDevMode As DEVMODE) As Long
Windows API函数功能说明
利用这个函数可获得与一个设备的能力有关的信息
Windows API函数出口返回值
Long,由iIndex参数的值决定,请参考设备能力常数表。如函数执行失败,或打印机的驱动程序不支持这个函数,那么函数就会返回-1
Windows API函数入口参数表
Windows API函数入口参数类型及说明
lpDeviceNameString,设备名
lpPortString,指定连接了指定设备的那个端口
iIndexLong,欲测试的能力。请参考设备能力常数表,其中列出了可选的值
lpOutputString,指定一个缓冲区的地址,能力数据会装载到这个缓冲区中。在设备能力常数表中,针对每个fwCapabilities值的缓冲区的内容都进行了总结。这个表格同时总结了应将参数设为vbNullString的一些情况
lpDevModeDEVMODE,一个DEVMODE结构的地址,或者为零。如指定了那个结构,函数会根据这个结构的设置来接收信息。如果为零,函数就会根据打印机驱动程序的默认值接收信息
注解
使用lpOutput时要注意:在许多时候,这个函数会返回一系列名称的列表。例如,假设将fwCapabilities标志设为DC_PAPERNAMES,那么就会得到一系列支持的纸张尺寸的名字。在这种情况下,lpOutput缓冲区应该是一个String变量,而且根据设备能力常数表的总结预先初始化成合适的长度。函数会在缓冲区中载入所有名称,而且每个名称在字串中都占用固定的空间。所以,我们完全能用Mid函数提取出每一个条目。
某些情况下,lpOutput需要指向一个数值数组的指针
设备能力常数表
fwCapabilitiesWindows API函数功能说明
DC_BINADJUST返回来自API32.TXT的某个常数。它应带有 DCBA_ 前缀,用于指定当前纸张源的正确纸张方向。仅适用于Win95
DC_BINNAMES如lpOutput为零,就返回由打印机支持的纸匣数量。否则,lpOutput应指向一个缓冲区(长度至少为24×纸匣数)。每24个字节都会保存一个纸匣的NULL中止名称
DC_BINS如lpOutput为零,就返回由打印机支持的纸匣数量。否则,lpOutput应指向一个整数数组(长度至少为纸匣数量)。这些值对应于为DEVMODE结构定义的 DMBIN_??? 常数
DC_COPIES返回打印机能够打印的最大副本数量
DC_DATATYPE_PRODUCED接收由打印机支持的一系列数据类型。这些类型可作为由StartDoc函数使用的DOCINFO结构的输出数据类型提供。如这个函数返回-1,那么支持的唯一数据类型就是 RAW 。仅适用于Win95
DC_DRIVER返回打印机驱动程序的版本号
DC_DUPLEX如打印机有双面打印功能,就返回1;否则返回0
DC_EMF_COMPLIANT如打印机能直接支持增强型图元文件,就返回TRUE。仅适用于Win95
DC_ENUMRESOLUTIONS如lpOutput为零,就返回由打印机支持的分辨率数量。否则,lpOutput应该是一个指向Long型数组的指针。该数组至少应包含(2×分辨率数量)个条目。每对条目都反映出水平和垂直分辨率(以每英寸的点数——dpi——为单位)
DC_EXTRA返回与具体设备有关的特殊字节,它们要为这个设备追加到DEVMODE结构后面
DC_FIELDS针对设备默认的DEVMODE数据结构,返回dmFields字段的值
DC_FILEDEPENDENCIES如lpOutput为零,就返回打印机驱动程序要求的文件数量。否则,lpOutput应指向一个至少有(64×文件数)个字节的缓冲区。每64个字节都会保存一个请求文件的NULL中止名称
DC_MAXEXTENT返回一个Long型值,其中包含打印机支持的最大纸张长度和宽度。其中,低字(16位)包含的是宽度数据。它们是由dmPaperWidth 和 dmPaperLength这两个DEVMODE字段的最大值
DC_MINEXTENT返回一个Long型值,其中包含打印机支持的最小纸张长度和宽度。其中,低字(16位)包含的是宽度数据。它们是由dmPaperWidth 和 dmPaperLength这两个DEVMODE字段的最大值
DC_ORIENTATION返回横向模式和纵向模式间的旋转度数。如果是零,表示驱动程序不支持横向打印模式。对于激光打印机,90度是最常见的一个设置;而对于点阵式打印机,一般都是270度
DC_PAPERNAMES如lpOutput为零,就返回由打印机支持的纸张尺寸数量。否则,lpOutput就应指向一个缓冲区(长度至少为64×纸张尺寸种数)。每64个字节都会装载一种支持的纸张尺寸的空中止名称
DC_PAPERS如lpOutput为零,就返回由打印机支持的纸张尺寸数量。否则,lpOutput就应指向一个整数数组(长度至少为纸张的尺寸种数)。值对应于为DEVMODE结构定义的 DMPAPER_??? 常数
DC_SIZE返回打印机DEVMODE数据结构的dmSize字段
DC_TRUETYPE下述常数之一:
DCTT_BITMAP设备能将TrueType字体当作图形打印
DCTT_DOWNLOAD设备能下载TrueType字体
DCTT_OUTLINE设备能下载轮廓型TrueType字体
DCTT_SUBDEV设备能取代与对应的TrueType字体兼容的内建字体
DC_VERSION返回设备驱动程序的规格版本号

上页:API函数详解:XFORM函数 下页:API函数详解:AbortPath函数

Windows API函数大全

Windows API函数首页Windows API函数按字母排列
控件与消息函数硬件与系统函数
设备场景函数绘图函数
位图、图标和光栅运算函数菜单函数
文本和字体函数打印函数
文件处理函数进程和线程函数
Windows消息函数网络函数
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号