EnumPrinterDataEx 函式

EnumPrinterDataEx函式會列舉指定印表機和索引鍵的所有值名稱和資料。

印表機資料會儲存在登錄中。 列舉印表機資料時,請勿呼叫可能會變更資料的登錄函式。

語法

DWORD EnumPrinterDataEx(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _Out_ LPBYTE  pEnumValues,
  _In_  DWORD   cbEnumValues,
  _Out_ LPDWORD pcbEnumValues,
  _Out_ LPDWORD pnEnumValues
);

參數

hPrinter [in]

函式擷取組態資料的印表機控制碼。 使用 OpenPrinterAddPrinter 函式來擷取印表機控制碼。

pKeyName [in]

Null 終止字串的指標,指定包含要列舉之值的索引鍵。 使用反斜線 ( \ ) 字元做為分隔符號,以指定具有一或多個子機碼的路徑。 EnumPrinterDataEx 會列舉索引鍵的所有值,但不會列舉指定索引鍵的子機碼值。 使用 EnumPrinterKey 函式來列舉子機碼。

如果 pKeyNameNull 或空字串, EnumPrinterDataEx 會傳回ERROR_INVALID_PARAMETER。

pEnumValues [out]

接收 PRINTER_ENUM_VALUES 結構陣列之緩衝區的指標。 每個 結構都包含索引鍵下值的值名稱、類型、資料和大小。

cbEnumValues [in]

以位元組為單位的緩衝區大小,以位元組為單位,由其所指向 的緩衝區。 如果您將 cbEnumValues 設定為零, 則 cbEnumValues 參數會傳回所需的緩衝區大小。

應用程式值 [out]

接收所擷取之組態資料大小之變數的指標,以位元組為單位。 如果 cbEnumValues 指定的緩衝區大小太小,則函式會傳回ERROR_MORE_DATA,而ERROR_MORE_DATA, 而 cbEnumValues 會指出所需的緩衝區大小。

pnEnumValues [out]

變數的指標,可接收pEnumValues中傳回的PRINTER_ENUM_VALUES結構數目。

傳回值

如果函式成功,傳回值會ERROR_SUCCESS。

如果函式失敗,則傳回值是系統錯誤碼。

備註

注意

這是封鎖或同步函式,可能不會立即傳回。 此函式傳回的速度取決於執行時間因素,例如網路狀態、列印伺服器設定,以及撰寫應用程式時難以預測的印表機驅動程式實作因素。 從管理與使用者介面互動的執行緒呼叫此函式,可能會使應用程式看起來沒有回應。

EnumPrinterDataEx 會 擷取 SetPrinterDataExSetPrinterData 函式所設定的印表機組態資料。

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Winspool.h (包含 Windows.h)
程式庫
Winspool.lib
DLL
Winspool.drv
Unicode 與 ANSI 名稱
EnumPrinterDataExW (Unicode) 和 EnumPrinterDataExA (ANSI)

另請參閱

列印

列印多工緩衝處理器 API 函式

DeletePrinterDataEx

EnumPrinterKey

GetPrinterDataEx

OpenPrinter

PRINTER_ENUM_VALUES

SetPrinterData

SetPrinterDataEx