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手册,了解这个函数进一步的情况 |