EnumForms 函式

EnumForms函式會列舉指定印表機所支援的表單。

語法

BOOL EnumForms(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pForm,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

參數

hPrinter [in]

應該列舉表單的印表機控制碼。 使用 OpenPrinterAddPrinter 函式來擷取印表機控制碼。

層級 [in]

指定 pForm 指向的結構版本。 此值必須是 1 或 2。

pForm [out]

一或多個FORM_INFO_1結構的 指標 ,或指向一或多個 FORM_INFO_2 結構。 所有結構都會有相同的層級。

cbBuf [in]

指定 pForm 指向之緩衝區的大小,以位元組為單位。

azureNeeded [out]

變數的指標,這個變數會接收 pForm 指向的陣列中複製的位元組數目,如果作業成功 () ,或因為 cbBuf 太小而太小,則為所需的位元組數目,或因為 cbBuf 太小而) (所需的位元組數目。

pcReturned [out]

變數的指標,該變數會接收 pForm 指向的陣列中複製的結構數目。

傳回值

如果函式成功,則傳回值是非零值。

如果此函式失敗,則傳回值為零。

備註

注意

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

如果呼叫端是遠端的,而 Level為 2,則傳回之FORM_INFO_2結構的StringType值一律會STRING_LANGPAIR

在 Windows Vista 中,當hPrinter參考遠端列印伺服器或列印伺服器所裝載的印表機時,EnumForms所傳回的表單資料會從本機快取擷取,而且遠端列印伺服器上至少有一個開啟的印表機連線。 在所有其他組態中,表單資料會從遠端列印伺服器查詢。

規格需求

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

另請參閱

列印

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

AddPrinter

FORM_INFO_1

OpenPrinter