次の方法で共有


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 を呼び出します。

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

スプール・ファイル内のページが約 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 関数

StartDocPrinter

StartPagePrinter

WritePrinter