StartDocPrinter 関数

StartDocPrinter 関数は、文書を印刷用にスプールすることを印刷スプーラーに通知します。

構文

DWORD StartDocPrinter(
  _In_ HANDLE hPrinter,
  _In_ DWORD  Level,
  _In_ LPBYTE pDocInfo
);

パラメーター

hPrinter [in]

プリンターのハンドル。 プリンター ハンドルを取得するには、 OpenPrinter または AddPrinter 関数を使用します。

レベル [入力]

pDocInfo がポイントする構造体のバージョン。 この値は 1 にする必要があります。

pDocInfo [in]

印刷するドキュメントを記述する DOC_INFO_1 構造体へのポインター。

戻り値

関数が成功した場合、戻り値は印刷ジョブを識別します。

関数が失敗した場合、戻り値は 0 です。

注釈

注

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

印刷ジョブの一般的な順序は次のとおりです。

  1. 印刷ジョブを開始するには、 StartDocPrinter を呼び出します。
  2. 各ページを開始するには、 StartPagePrinter を呼び出します。
  3. ページにデータを書き込むには、 WritePrinter を呼び出します。
  4. 各ページを終了するには、 EndPagePrinter を呼び出します。
  5. 必要な数のページに対して 2、3、4 を繰り返します。
  6. 印刷ジョブを終了するには、 EndDocPrinter を呼び出します。

印刷データ型にページ情報が含まれている場合など、 StartPagePrinter と EndPagePrinter の呼び出しは必要ない場合があることに注意してください。

スプール・ファイル内のページが約 350 MB を超えると、印刷に失敗し、エラー・メッセージが送信されないことがあります。 たとえば、これは、大きな EMF ファイルを印刷するときに発生する可能性があります。 ページ サイズの制限は、使用可能な仮想メモリの量、呼び出し元のプロセスによって割り当てられたメモリの量、プロセス ヒープ内の断片化の量など、多くの要因によって異なります。

例示

この関数を使用するサンプル プログラムについては、「 方法: GDI Print API を使用して印刷する」を参照してください。

要求事項

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

こちらも参照ください

AddJobをする

DOC_INFO_1

DOC_INFO_2

EndDocPrinter

EndPagePrinter

OpenPrinter

印刷

印刷スプーラー API 関数

StartPagePrinter

WritePrinter