EnumPrinterDataEx 函式
EnumPrinterDataEx函式會列舉指定印表機和索引鍵的所有值名稱和資料。
印表機資料會儲存在登錄中。 列舉印表機資料時,請勿呼叫可能會變更資料的登錄函式。
語法
DWORD EnumPrinterDataEx(
_In_ HANDLE hPrinter,
_In_ LPCTSTR pKeyName,
_Out_ LPBYTE pEnumValues,
_In_ DWORD cbEnumValues,
_Out_ LPDWORD pcbEnumValues,
_Out_ LPDWORD pnEnumValues
);
參數
-
hPrinter [in]
-
函式擷取組態資料的印表機控制碼。 使用 OpenPrinter 或 AddPrinter 函式來擷取印表機控制碼。
-
pKeyName [in]
-
Null 終止字串的指標,指定包含要列舉之值的索引鍵。 使用反斜線 ( \ ) 字元做為分隔符號,以指定具有一或多個子機碼的路徑。 EnumPrinterDataEx 會列舉索引鍵的所有值,但不會列舉指定索引鍵的子機碼值。 使用 EnumPrinterKey 函式來列舉子機碼。
如果 pKeyName 為 Null 或空字串, 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 會 擷取 SetPrinterDataEx 和 SetPrinterData 函式所設定的印表機組態資料。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限桌面應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|
Unicode 與 ANSI 名稱 |
EnumPrinterDataExW (Unicode) 和 EnumPrinterDataExA (ANSI) |