EnumPrinterKey 函式

EnumPrinterKey函式會列舉指定印表機之指定索引鍵的子機碼。

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

語法

DWORD EnumPrinterKey(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _Out_ LPTSTR  pSubkey,
  _In_  DWORD   cbSubkey,
  _Out_ LPDWORD pcbSubkey
);

參數

hPrinter [in]

函式列舉子機碼之印表機的控制碼。 使用 OpenPrinterAddPrinter 函式來擷取印表機控制碼。

pKeyName [in]

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

如果 pKeyName 是空字串 (「」) , EnumPrinterKey 會列舉印表機的最上層索引鍵。 如果 pKeyNameNullEnumPrinterKey 會傳回ERROR_INVALID_PARAMETER。

pSubkey [out]

接收 Null 終止子機碼名稱陣列之緩衝區的指標。 陣列會以兩個 Null 字元終止。

cbSubkey [in]

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

apiSubkey [out]

變數的指標,接收 pSubkey 緩衝區中擷取的位元組數目。 如果 cbSubkey 指定的緩衝區大小太小,則函式會傳回ERROR_MORE_DATA,而 cbSubkey 表示所需的緩衝區大小。

傳回值

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

如果函式失敗,則傳回值是系統錯誤碼。 如果 pKeyName 不存在,傳回值會ERROR_FILE_NOT_FOUND。

備註

注意

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

規格需求

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

另請參閱

列印

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

DeletePrinterDataEx

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx