精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:打印函数 第三页

主题:VB API:打印函数 第三页
发信人: winsy(鹰派)
整理人: winsy(2003-03-14 09:04:27), 站内信件
EnumPorts 

VB声明 
Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" (ByVal pName As String, ByVal Level As Long, ByVal lpbPorts As Long, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long 
说明 
枚举一个系统可用的端口 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
pName String,指定服务器的名字。用vbNullString指定本地系统 
Level Long,1或2(1用于NT 3.51),分别指定PORT_INFO_1 或 PORT_INFO_2 
lpbPorts Long,包含PORT_INFO_1 或 PORT_INFO_2结构的缓冲区 
cbBuf Long,lpbPorts缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数) 
注解 
参考AddPort函数,了解进一步的情况
 

EnumPrinterDrivers 

VB声明 
Declare Function EnumPrinterDrivers Lib "winspool.drv" Alias "EnumPrinterDriversA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcRetruned As Long) As Long 
说明 
枚举指定系统中已安装的打印机驱动程序 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
pName String,指定服务器的名字。用vbNullString指定本地系统 
pEnvironment String,欲在其中对驱动程序进行枚举的环境(如:Windows NT x86)。如设为vbNullString,表示使用当前(本地)系统环境 
Level Long,1,2或3(3仅适用于Windows 95和NT 4.0) 
pDriverInfo Byte,包含DRIVER_INFO_1, DRIVER_INFO_2 或 DRIVER_INFO_3结构的缓冲区 
cbBuf Long,pDriverInfo缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数) 


EnumPrinters 

VB声明 
Declare Function EnumPrinters Lib "winspool.drv" Alias "EnumPrintersA" (ByVal flags As Long, ByVal name As String, ByVal Level As Long, pPrinterEnum As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long 
说明 
枚举系统中安装的打印机 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
flags Long,一个或多个下述标志 
PRINTER_ENUM_LOCAL 枚举本地打印机(包括Windows 95中的网络打印机)。名字会被忽略 
PRINTER_ENUM_NAME 枚举由name参数指定的打印机。其中的名字可以是一个供应商、域或服务器。如name为NULL,则枚举出可用的打印机 
PRINTER_ENUM_SHARE 枚举共享打印机(必须同其他常数组合使用) 
PRINTER_ENUM_CONNECTIONS 枚举网络连接列表中的打印机(即使目前没有连接——仅适用于NT) 
PRINTER_ENUM_NETWORK 枚举通过网络连接的打印机。级别(Level)必须为1。仅适用于NT 
PRINTER_ENUM_REMOTE 枚举通过网络连接的打印机和打印服务器。级别必须为1。仅适用于NT 
name String,vbNullString表示枚举同本机连接的打印机。否则由标志和级别决定 
Level Long,1,2,4或5(4仅适用于NT;5仅适用于Win95和NT 4.0),指定欲枚举的结构的类型。如果是1,则name参数由标志设置决定。如果是2或5,那么name就代表欲对其打印机进行枚举的服务器的名字;或者为vbNullString。如果是4,那么只有PRINTER_ENUM_LOCAL和PRINTER_ENUM_CONNECTIONS才有效。名字必须是vbNullString 
pPrinterEnum Byte,包含PRINTER_ENUM_x结构的缓冲区,其中的x代表级别(Level) 
cbBuf Long,pPrinterEnum缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数) 
注解 
第4和第5级将它们的结构建立在系统注册表的基础上,而且比第2级快得多。后者要求每台打印机都处于打开状态
请参考微软Win32手册,了解这个函数进一步的情况
 


GetPrinterData 

VB声明 
Declare Function GetPrinterData Lib "winspool.drv" Alias "GetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, pType As Long, pData As Byte, ByVal nSize As Long, pcbNeeded As Long) As Long 
说明 
为打印机设置注册表配置信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hPrinter Long,一个已打开的打印机的句柄(用OpenPrinter获得) 
pValueName String,欲设置的注册表值的名称 
pType Long,指定数据类型。使用来自API32.TXT的、以REG_??开头的一个常数 
pData Byte,指定一个Byte数组以接收数据 
nSize Long,以字节表示的pData数组的长度 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 


EnumPrintProcessorDatatypes 

VB声明 
Declare Function EnumPrintProcessorDatatypes Lib "winspool.drv" Alias "EnumPrintProcessorDatatypesA" (ByVal pName As String, ByVal pPrintProcessorName As String, ByVal Level As Long, pDatatypes As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcRetruned As Long) As Long 
说明 
枚举由一个打印处理器支持的数据类型 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
pName String,指定服务器的名字。用vbNullString表示使用本地系统 
pPrintProcessorName String,欲对其数据类型进行枚举的打印处理器的名字 
Level Long,设为1 
pDatatypes Byte,包含DATATYPES_INFO_1结构的缓冲区 
cbBuf Long,pDatatypes缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数) 
注解 
DATATYPES_INFO_1结构包含了单个字段,其中保存了数据类型的名称
 

EnumPrintProcessors 

VB声明 
Declare Function EnumPrintProcessors Lib "winspool.drv" Alias "EnumPrintProcessorsA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pPrintProcessorInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long 
说明 
枚举系统中可用的打印处理器 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
pName String,指定服务器的名字。用vbNullString表示使用本地系统 
pEnvironment String,欲枚举的打印处理器的环境(如:Windows NT x86)。如设为vbNullString,表示使用当前(本地)系统环境 
Level Long,设为1 
pPrintProcessorInfo Byte,包含PRINTPROCESSOR_INFO_1结构的缓冲区 
cbBuf Long,pPrintProcessorInfo缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数) 


Escape 

VB声明 
Declare Function Escape Lib "gdi32" Alias "Escape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal nCount As Long, ByVal lpInData As String, lpOutData As Any) As Long 
说明 
一个灵活的设备控制函数 
返回值 
Long,对于QUERYESCSUPPORT,如支持指定的换码,则返回TRUE(非零);否则返回零。对于PASSTHROUGH,大于零值表示成功;如指定的换码不支持,则返回零;如果出错,则返回负值 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
nEscape Long,换码数量,由API32.TXT文件中的一个常数定义。这决定了具体的运作方式。请参考注解 
nCount Long,lpInData缓冲区的大小,用字节数表示 
lpInData String,由换码类型决定。对于QUERYESCSUPPORT,这代表指向一个整数变量的指针,那个变量包含了要测试的换码值。对于PASSTHROUGH,这代表指向一个数据块的指针,那个数据块包含于要发送数据的头16位字节数量中。数据块剩余的部分包含了要发送给打印机的实际数据缓冲区 
lpOutData Any,指定一个输出缓冲区,它的具体使用由换码决定。它不由QUERYESCSUPPORT或PASSTHROUGH使用,而且应设为NULL(ByVal 0&) 
注解 
只有两个换码在Win32环境中经常用到。请用QUERYESCSUPPORT换码判断一个换码是否得到了驱动程序的支持。用PASSTHROUGH换码将原始数据直接发给一台打印机。其他换码在Win32仍然得到了支持,但目的只是为了与Win16保持兼容
 

FindClosePrinterChangeNotification 

VB声明 
Declare Function FindClosePrinterChangeNotification Lib "winspool.drv" Alias "FindClosePrinterChangeNotification" (ByVal hChange As Long) As Long 
说明 
关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hChange Long,欲关闭的打印机通告对象句柄 
适用平台 
Windows NT
 

FindFirstPrinterChangeNotification 

VB声明 
Declare Function FindFirstPrinterChangeNotification& Lib "winspool.dll" (ByVal hPrinter As Long, ByVal fdwFlags As Long, ByVal fdwOptions As Long, pPrinterNotifyOptions As Byte) 
说明 
创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 
返回值 
Long,执行成功则返回改变通告对象的句柄。INVALID_HANDLE_VALUE表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hPrinter Long,一个已打开的打印机对象的句柄(用OpenPrinter获得) 
fdwFlags Long,来自API32.TXT文件的、带有PRINTER_CHANGE_??前缀的某个常数,它们对要观察的对象进行了描述。如pPrinterNotifyOptions不为零,那么可将这个参数设为零 
fdwOptions Long,保留,设为零 
pPrinterNotifyOptions Byte,指定一个缓冲区,其中包含了一个PRINTER_NOTIFY_OPTIONS结构。而这个结构又包含了指向一个或多个PRINTER_NOTIFY_OPTIONS_TYPE结构的指针。可将这个参数设为零(将声明方式改为ByVal As Long并传递零值),以便用fdwFlags字段指定想观察的变化 
适用平台 
Windows NT
 
其他 
以下的声明是从VB的API文本查看器里复制的:
Declare Function FindFirstPrinterChangeNotification Lib "winspool.drv" Alias "FindFirstPrinterChangeNotification" (ByVal hPrinter As Long, ByVal fdwFlags As Long, ByVal fdwOptions As Long, ByVal pPrinterNotifyOptions As String) As Long 


FindNextPrinterChangeNotification 

VB声明 
Declare Function FindNextPrinterChangeNotification& Lib "winspool.dll" (ByVal hChange As Long, pdwChange As Long, ByVal pvReserved As Long, ByVal ppPrinterNotifyInfo As Long) 
说明 
用这个函数判断触发一次打印机改变通告信号的原因 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hChange Long,一个打印机通告改变对象的句柄 
pdwChange Long,指定用于装载特定标志的一个Long型值,该标志标志着信号的来源。请在API32.TXT文件中寻找以PRINTER_CHANGE_???前缀开头的常数 
pvReserved Long,指定一个PRINTER_NOTIFY_OPTIONS结构的地址。如这个结构的Flags字段设为PRINTER_NOTIFY_OPTIONS_REFRESH,那么ppPrinterNotifyInfo缓冲区就会载入正在监视的所有事件的状态——并不仅是那些触发了通告信号的事件。结构中所有其他字段会被忽略。可设为NULL(零),表示只返回与状态改变有关信息 
ppPrinterNotifyInfo Long,由系统分配的一个缓冲区的地址。完成后,应该用FreePrinterNotifyInfo函数将这个缓冲区删除。缓冲区内包含了一个PRINTER_NOTIFY_INFO结构,其后跟随一系列PRINTER_NOTIFY_INFO_DATA结构(具体数量由第一个结构决定) 
适用平台 
Windows NT
 
其他 
在VB的API文本查看器中复制的声明如下:
Declare Function FindNextPrinterChangeNotification Lib "winspool.drv" Alias "FindNextPrinterChangeNotification" (ByVal hChange As Long, pdwChange As Long, ByVal pvReserved As String, ByVal ppPrinterNotifyInfo As Long) As Long 


FreePrinterNotifyInfo 

VB声明 
Declare Function FreePrinterNotifyInfo Lib "winspool.drv" (ByVal addr As Long) As Long 
说明 
释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
addr Long,指定由FindNextPrinterChangeNotification函数分配的一个系统缓冲区的地址 
适用平台 
Windows NT
 

GetForm 

VB声明 
Declare Function GetForm Lib "winspool.drv" Alias "GetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long) As Long 
说明 
取得与指定表单有关的信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hPrinter Long,一个已打开的打印机的句柄(用OpenPrinter获得) 
pFormName String,想获取信息的一个表单的名字 
Level Long,设为1 
pForm Byte,包含FORM_INFO_1结构的缓冲区 
cbBuf Long,pForm缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
适用平台 
Windows NT
 

GetJob 

VB声明 
Declare Function GetJob Lib "winspool.drv" Alias "GetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long 
说明 
获取与指定作业有关的信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hPrinter Long,一个已打开的打印机的句柄(用OpenPrinter获得) 
JobId Long,作业编号 
Level Long,1或2 
pJob Byte,包含JOB_INFO_1 或 JOB_INFO_2结构的缓冲区,结构中包含了与打印作业有关的信息 
cbBuf Long,pJob缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 



GetPrinter 

VB声明 
Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As Long 
说明 
取得与指定打印机有关的信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hPrinter Long,一个已打开的打印机的句柄(用OpenPrinter获得) 
Level Long,1,2,3(仅适用于NT),4(仅适用于NT),或者5(仅适用于Windows 95 和 NT 4.0) 
pPrinter Any,包含PRINTER_INFO_x结构的缓冲区。x代表级别 
cbBuf Long,pPrinterEnum缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
注解 
只有在发出调用的应用程序有足够的权限时,PRINTER_INFO_x结构中的一些字段才能够被读取。这种权限由系统当前的安全设置决定
 

GetPrinterDriver 

VB声明 
Declare Function GetPrinterDriver Lib "winspool.drv" Alias "GetPrinterDriverA" (ByVal hPrinter As Long, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long 
说明 
针对指定的打印机,获取与打印机驱动程序有关的信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hPrinter Long,一个已打开的打印机的句柄(用OpenPrinter获得) 
pEnvironment String,欲获取的驱动程序环境(如:Windows NT x86)。如设为vbNullString,表示使用当前(本地)系统环境 
Level Long,1,2或3(仅适用于Windows 95 和 NT 4.0) 
pDriverInfo Byte,载入一个 DRIVER_INFO_x结构的缓冲区。其中的x代表级别(Level)设置 
cbBuf Long,pDriverInfo缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 


GetPrinterDriverDirectory 

VB声明 
Declare Function GetPrinterDriverDirectory Lib "winspool.drv" Alias "GetPrinterDriverDirectoryA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverDirectory As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long 
说明 
判断指定系统中包含了打印机驱动程序的目录是什么 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
pName String,服务器的名字。如设为vbNullString,表示使用本地系统 
pEnvironment String,欲在其中获取目录的一个环境(如:Windows NT x86)。vbNullString表示使用当前(本地)系统环境 
Level Long,设为1 
pDriverDirectory Byte,指定一个缓冲区,其中会载入打印机驱动程序目录的完整路径名。可定义成ByVal As String,以便将字节数组分配给一个字串,从而避免执行ANSI到Unicode格式的转换 
cbBuf Long,pDriverDirectory缓冲区中的字符数量 
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 

[关闭][返回]