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 を返します。
解説
注意
これはブロック関数または同期関数であり、すぐには返されない可能性があります。 この関数が返す速度は、ネットワーク状態、プリント サーバーの構成、プリンター ドライバーの実装要因など、アプリケーションの作成時に予測が困難な実行時の要因によって異なります。 ユーザー インターフェイスとの対話を管理するスレッドからこの関数を呼び出すと、アプリケーションが応答しなくなる可能性があります。
印刷ジョブの一般的なシーケンスは次のとおりです。
- 印刷ジョブを開始するには、 StartDocPrinter を呼び出します。
- 各ページを開始するには、 StartPagePrinter を呼び出します。
- ページにデータを書き込むには、 WritePrinter を呼び出します。
- 各ページを終了するには、 EndPagePrinter を呼び出します。
- 必要な数のページに対して 2、3、4 を繰り返します。
- 印刷ジョブを終了するには、 EndDocPrinter を呼び出します。
印刷データ型にページ情報が含まれている場合など、 StartPagePrinter と EndPagePrinter を呼び出す必要がない場合があることに注意してください。
スプール・ファイル内のページが約 350 MB を超えると、印刷に失敗し、エラー・メッセージが送信されないことがあります。 たとえば、これは、大きな EMF ファイルを印刷するときに発生する可能性があります。 ページ サイズの制限は、使用可能な仮想メモリの量、プロセスの呼び出しによって割り当てられたメモリの量、プロセス ヒープ内の断片化の量など、多くの要因によって異なります。
例
この関数を使用するサンプル プログラムについては、「 方法: GDI Print API を使用して印刷する」を参照してください。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|
Unicode 名と ANSI 名 |
StartDocPrinterW (Unicode) と StartDocPrinterA (ANSI) |