次の方法で共有


EnumForms 関数

EnumForms 関数は、指定したプリンターでサポートされているフォームを列挙します。

構文

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

パラメーター

hPrinter [in]

フォームを列挙するプリンターを処理します。 プリンター ハンドルを取得するには、 OpenPrinter 関数または AddPrinter 関数を使用します。

レベル [入力]

pForm が指す構造体のバージョンを指定します。 この値は 1 または 2 である必要があります。

pForm [out]

1 つ以上 のFORM_INFO_1 構造体へのポインター、または 1 つ以上 のFORM_INFO_2 構造体へのポインター。 すべての構造体のレベルは同じです。

cbBuf [in]

pForm が指すバッファーのサイズをバイト単位で指定します。

pcbNeeded [out]

pForm が指す配列にコピーされたバイト数 (操作が成功した場合) または必要なバイト数 (cbBuf が小さすぎるために失敗した場合) を受け取る変数へのポインター。

pcReturned [out]

pForm が指す配列にコピーされた構造体の数を受け取る変数へのポインター。

戻り値

関数が成功した場合、戻り値は 0 以外の値になります。

関数が失敗した場合は、0 を返します。

注釈

注意

これはブロック関数または同期関数であり、すぐには返されない場合があります。 この関数が返す速度は、アプリケーションの作成時に予測が困難なネットワーク状態、プリント サーバーの構成、プリンター ドライバーの実装要因などの実行時の要因によって異なります。 ユーザー インターフェイスとの対話を管理するスレッドからこの関数を呼び出すと、アプリケーションが応答しなくなる可能性があります。

呼び出し元がリモートで Level が 2 の場合、返されるFORM_INFO_2構造体の StringType 値は常にSTRING_LANGPAIRされます。

Windows Vista では、 EnumForms によって返されるフォーム データは、 hPrinter がリモート プリント サーバーまたはプリント サーバーによってホストされているプリンターを参照し、リモート プリント サーバー上のプリンターへの接続が少なくとも 1 つ開いている場合に、ローカル キャッシュから取得されます。 その他のすべての構成では、フォーム データに対してリモート プリント サーバーからクエリが実行されます。

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Winspool.h (Windows.h を含む)
ライブラリ
Winspool.lib
[DLL]
Winspool.drv
Unicode 名と ANSI 名
EnumFormsW (Unicode) と EnumFormsA (ANSI)

関連項目

印刷

印刷スプーラー API 関数

AddPrinter

FORM_INFO_1

OpenPrinter