EnumPrinters

此頁(yè)沒(méi)有內(nèi)容條目
內(nèi)容

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

說(shuō)明

枚舉系統(tǒng)中安裝的打印機(jī)

返回值

Long,非零表示成功,零表示失敗。會(huì)設(shè)置GetLastError

參數(shù)表

參數(shù)

類(lèi)型及說(shuō)明

flags

Long,一個(gè)或多個(gè)下述標(biāo)志

PRINTER_ENUM_LOCAL

枚舉本地打印機(jī)(包括Windows 95中的網(wǎng)絡(luò)打印機(jī))。名字會(huì)被忽略

PRINTER_ENUM_NAME

枚舉由name參數(shù)指定的打印機(jī)。其中的名字可以是一個(gè)供應(yīng)商、域或服務(wù)器。如name為NULL,則枚舉出可用的打印機(jī)

PRINTER_ENUM_SHARE

枚舉共享打印機(jī)(必須同其他常數(shù)組合使用)

PRINTER_ENUM_CONNECTIONS

枚舉網(wǎng)絡(luò)連接列表中的打印機(jī)(即使目前沒(méi)有連接——僅適用于NT)

PRINTER_ENUM_NETWORK

枚舉通過(guò)網(wǎng)絡(luò)連接的打印機(jī)。級(jí)別(Level)必須為1。僅適用于NT

PRINTER_ENUM_REMOTE

枚舉通過(guò)網(wǎng)絡(luò)連接的打印機(jī)和打印服務(wù)器。級(jí)別必須為1。僅適用于NT

name

String,vbNullString表示枚舉同本機(jī)連接的打印機(jī)。否則由標(biāo)志和級(jí)別決定

Level

Long,1,2,4或5(4僅適用于NT;5僅適用于Win95和NT 4.0),指定欲枚舉的結(jié)構(gòu)的類(lèi)型。如果是1,則name參數(shù)由標(biāo)志設(shè)置決定。如果是2或5,那么name就代表欲對(duì)其打印機(jī)進(jìn)行枚舉的服務(wù)器的名字;或者為vbNullString。如果是4,那么只有PRINTER_ENUM_LOCAL和PRINTER_ENUM_CONNECTIONS才有效。名字必須是vbNullString

pPrinterEnum

Byte,包含PRINTER_ENUM_x結(jié)構(gòu)的緩沖區(qū),其中的x代表級(jí)別(Level)

cbBuf

Long,pPrinterEnum緩沖區(qū)中的字符數(shù)量

pcbNeeded

Long,指向一個(gè)Long型變量的指針,該變量用于保存請(qǐng)求的緩沖區(qū)長(zhǎng)度,或者實(shí)際讀入的字節(jié)數(shù)量

pcReturned

Long,載入緩沖區(qū)的結(jié)構(gòu)數(shù)量(用于那些能返回多個(gè)結(jié)構(gòu)的函數(shù))

注解

第4和第5級(jí)將它們的結(jié)構(gòu)建立在系統(tǒng)注冊(cè)表的基礎(chǔ)上,而且比第2級(jí)快得多。后者要求每臺(tái)打印機(jī)都處于打開(kāi)狀態(tài)

請(qǐng)參考微軟Win32手冊(cè),了解這個(gè)函數(shù)進(jìn)一步的情況

Top