发信人: winsy(鹰派)
整理人: winsy(2003-03-14 09:04:27), 站内信件
|
DeleteMonitor
VB声明
Declare Function DeleteMonitor Lib "winspool.drv" Alias "DeleteMonitorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pMonitorName As String) As Long
说明
删除指定的打印监视器
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pName String,监视器所在的服务器的名字。用vbNullString指定本地系统
pEnvironment String,欲在其中删除监视器的环境。用vbNullString指定当前系统
pMonitorName String,欲删除监视器的名字
注解
参考AddMonitor函数,了解进一步的信息
DeletePort
VB声明
Declare Function DeletePort Lib "winspool.drv" Alias "DeletePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long
说明
启动“删除端口”对话框,允许用户从当前系统删除一个端口
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pName String,欲在其中删除端口的服务器的名字。vbNullString表示使用本地端口
hwnd Long,DeletePort对话框的父窗口的句柄
pPortName String,欲删除的端口的名字
注解
如打印机已连接到端口,则函数执行会失败
DeletePrinter
VB声明
Declare Function DeletePrinter Lib "winspool.drv" Alias "DeletePrinter" (ByVal hPrinter As Long) As Long
说明
将指定的打印机标志为从系统中删除
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hPrinter Long,已打开的打印机对象的句柄
注解
除非所有待决的打印作业都已完成,否则打印机不会实际删除
DeletePrinterConnection
VB声明
Declare Function DeletePrinterConnection Lib "winspool.drv" Alias "DeletePrinterConnectionA" (ByVal pName As String) As Long
说明
删除与指定打印机的连接
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pName String,要删除的打印机连接
DeletePrinterDriver
VB声明
Declare Function DeletePrinterDriver Lib "winspool.drv" Alias "DeletePrinterDriverA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pDriverName As String) As Long
说明
从系统删除一个打印机驱动程序
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pName String,服务器的名字。针对本地驱动程序设为vbNullString
pEnvironment String,指定欲在其中删除驱动程序的一个环境(如“Windows NT x86”)。对于当前(本地)系统环境,则设为vbNullString
pDriverName String,要删除的驱动程序的名字
注解
驱动程序文件不会从系统物理性的删除,只是不能继续使用
DeletePrintProcessor
VB声明
Declare Function DeletePrintProcessor Lib "winspool.drv" Alias "DeletePrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProcessorName As String) As Long
说明
从指定系统删除一个打印处理器
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pName String,服务器的名字。针对本地处理器设为vbNullString
pEnvironment String,指定欲删除打印处理器的一个环境(如“Windows NT x86”)。对于当前(本地)系统环境,则设为vbNullString
pPrintProcessorName String,要删除的打印处理器的名字
DeletePrintProvidor
VB声明
Declare Function DeletePrintProvidor Lib "winspool.drv" Alias "DeletePrintProvidorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProvidorName As String) As Long
说明
从系统中删除一个打印供应商
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pName String,服务器的名字。针对本地服务器设为vbNullString
pEnvironment String,指定欲删除打印供应商的一个环境(如“Windows NT x86”)。对于当前(本地)系统环境,则设为vbNullString
pPrintProvidorName String,要删除的打印供应商的名字
DeviceCapabilities
VB声明
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
说明
利用这个函数可获得与一个设备的能力有关的信息
返回值
Long,由iIndex参数的值决定,请参考设备能力常数表。如函数执行失败,或打印机的驱动程序不支持这个函数,那么函数就会返回-1
参数表
参数 类型及说明
lpDeviceName String,设备名
lpPort String,指定连接了指定设备的那个端口
iIndex Long,欲测试的能力。请参考设备能力常数表,其中列出了可选的值
lpOutput String,指定一个缓冲区的地址,能力数据会装载到这个缓冲区中。在设备能力常数表中,针对每个fwCapabilities值的缓冲区的内容都进行了总结。这个表格同时总结了应将参数设为vbNullString的一些情况
lpDevMode DEVMODE,一个DEVMODE结构的地址,或者为零。如指定了那个结构,函数会根据这个结构的设置来接收信息。如果为零,函数就会根据打印机驱动程序的默认值接收信息
注解
使用lpOutput时要注意:在许多时候,这个函数会返回一系列名称的列表。例如,假设将fwCapabilities标志设为DC_PAPERNAMES,那么就会得到一系列支持的纸张尺寸的名字。在这种情况下,lpOutput缓冲区应该是一个String变量,而且根据设备能力常数表的总结预先初始化成合适的长度。函数会在缓冲区中载入所有名称,而且每个名称在字串中都占用固定的空间。所以,我们完全能用Mid函数提取出每一个条目。
某些情况下,lpOutput需要指向一个数值数组的指针
设备能力常数表
fwCapabilities 说明
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 返回设备驱动程序的规格版本号
DocumentProperties
VB声明
Declare Function DocumentProperties& Lib "winspool.dll" Alias "DocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, ByVal pDevModeOutput As Long, ByVal pDevModeInput As Long, ByVal fMode As Long)
说明
这是一个灵活的打印机配置控制函数。该函数定义了两个DEVMODE结构,可在创建一个设备场景时为单个应用程序改变打印机设置。甚至能在文档打印期间改变打印机设置
返回值
Long,由fMode字段的值决定。如下所示:
若fMode为零,这个函数就返回DEVMODE结构的尺寸。注意这个结构可能比类型定义文件API32.TXT中规定的尺寸大
若fMode设置了DM_IN_PROMPT标志,那么打印机设置对话框就会出现。在这种情况下,返回值将是常数IDOK 或 IDCANCEL——具体由用户关闭对话框时按下的按钮决定
在其他任何情况下,该函数执行成功后会返回IDOK。而在任何情况下,如函数执行失败,都会返回一个负数
参数表
参数 类型及说明
hwnd Long,对话框父窗口的句柄。这通常是当前的活动窗体
hPrinter Long,一个已打开的打印机对象的句柄
pDeviceName String,打印机的名字
pDevModeOutput Long,指向一个DEVMODE数据结构的指针。请参考DocumentProperties运行模式表。注意这个指针必须引用一个足够大的缓冲区,它能同时容下专用打印机驱动程序数据,以及标准的DEVMODE结构
pDevModeInput Long,指向一个DEVMODE数据结构的指针。请参考DocumentProperties运行模式表
fMode Long,决定这个函数运作模式的一个标志。请参考DocumentProperties运行模式表
DocumentProperties运行模式表
常数标志 运行模式
无 不使用pDevModeInput。pDevModeOutput可能为零。函数会返回由这两个参数引用的DEVMODE结构需要的大小
DM_IN_BUFFER pDevModeInput缓冲区应载入打印机驱动程序的新位置。在调用这个函数判断应使用结构中的哪些字段前,应设置结构的dmFields字段
DM_IN_PROMPT 显示出打印机设置对话框,以便用户指定输出时采用的打印机设置。如指定了DM_IN_BUFFER,那么在显示对话框前,输入缓冲区中指定的任何字段都会与当前的打印机DEVMODE结构合并起来
DM_OUT_BUFFER 令打印机设置信息输出到由pDevModeOutput参数指定的缓冲区。这些设置由两个输入标志决定,而且由此反映了原始的输入结构、当前的打印机设置以及用户在打印机设置对话框中作出的任何修改。如未指定这个标志,lpdmOutput参数就可以设为零
EndDocAPI
VB声明
Declare Function EndDocAPI& Lib "gdi32" Alias "EndDoc" (ByVal hDC As Long)
说明
结束一个成功的打印作业
返回值
Long,大于零表示成功,小于或等于零表示失败。会设置GetLastError
参数表
参数 类型及说明
hDC Long,设备场景的句柄
EndDocPrinter
VB声明
Declare Function EndDocPrinter Lib "winspool.drv" Alias "EndDocPrinter" (ByVal hPrinter As Long) As Long
说明
在后台打印程序的级别指定一个文档的结束
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hPrinter Long,一个已打开的打印机的句柄(用用OpenPrinter获得)
注解
在应用程序的级别并非特别有用。后台打印程序用它标识打印作业中一个文档的结束
EndPage
VB声明
Declare Function EndPage Lib "gdi32" Alias "EndPage" (ByVal hdc As Long) As Long
说明
用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
返回值
Long,大于零表示成功,小于或等于零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
在VB里使用
使用VB的打印机对象时,应该使用NewPage方法来代替这个函数
注解
这个函数的执行可能相当耗时——具体取决于正在进行的绘图操作的复杂程度、使用什么操作系统以及打印机与本机连接还是与远程主机连接。为了让用户能随时取消打印,在执行期间,这个函数会定时调用由API调用SetAbortProc指定的取消例程
EndPagePrinter
VB声明
Declare Function EndPagePrinter Lib "winspool.drv" Alias "EndPagePrinter" (ByVal hPrinter As Long) As Long
说明
指定一个页在打印作业中的结尾
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hPrinter Long,一个已打开的打印机对象的句柄(用OpenPrinter获得)
注解
在应用程序的级别并非特别有用,后台打印程序用它在实际打印机数据中标识一个页的结尾
EnumForms
VB声明
Declare Function EnumForms Lib "winspool.drv" Alias "EnumFormsA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
说明
枚举一台打印机可用的表单
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hPrinter Long,一个已打开的打印机对象的句柄(用OpenPrinter获得)
Level Long,设为1
pForm Byte,一个包含FORM_INFO_1结构的缓冲区
cbBuf Long,pForm缓冲区中的字符数量
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数)
适用平台
Windows NT
注解
参考AddForm函数,了解进一步的情况
EnumJobs
VB声明
Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
说明
枚举打印队列中的作业
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hPrinter Long,一个已打开的打印机对象的句柄(用OpenPrinter获得)
FirstJob Long,作业列表中要枚举的第一个作业的索引(注意编号从0开始)
NoJobs Long,要枚举的作业数量
Level Long,1或2
pJob Byte,包含 JOB_INFO_1 或 JOB_INFO_2 结构的缓冲区
cbBuf Long,pJob缓冲区中的字符数量
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数)
适用平台
EnumMonitors
VB声明
Declare Function EnumMonitors Lib "winspool.drv" Alias "EnumMonitorsA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
说明
枚举可用的打印监视器
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pName String,服务器的名字。用vbNullString指定本地系统
Level Long,设为1
pMonitors Byte,包含MONINTOR_INFO_1结构的缓冲区
cbBuf Long,pMonitors缓冲区中的字符数量
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数)
注解
MONINTOR_INFO_1结构有一个字段包含了打印监视器的名字
|
|