AddJob 関数
AddJob 関数は、印刷スプーラーによってスケジュールできる印刷ジョブの一覧に印刷ジョブを追加します。 関数は、ジョブの格納に使用できるファイルの名前を取得します。
注意
Windows 8 以降のオペレーティング システムでは、AddJob を直接使用することはお勧めしません(File: または PORTPROMPT:) を使用してキューに出力する場合などです。ここで、AddJob は失敗します。 代わりに、印刷シナリオに応じて、 GDI Print API、 XPS Print API、 StartDocPrinter、または Windows.Graphics.Printing 名前空間の適切なメソッドを使用することをお勧めします。
File: または PORTPROMPT:を使用してキューに出力しようとすると、AddJob はNOT_SUPPORTED エラーを返します。
構文
BOOL AddJob(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_Out_ LPBYTE pData,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
パラメーター
-
hPrinter [in]
-
印刷ジョブのプリンターを指定するハンドル。 これは、スプール・プリンターとして構成されているローカル・プリンターでなければなりません。 hPrinter がリモート プリンター接続のハンドルである場合、またはプリンターが直接印刷用に構成されている場合、AddJob 関数は失敗します。 プリンター ハンドルを取得するには 、OpenPrinter または AddPrinter 関数を使用します。
-
レベル [入力]
-
関数が pData が指すバッファーに格納される印刷ジョブ情報データ構造のバージョン。 このパラメーターを 1 に設定します。
-
pData [out]
-
ADDJOB_INFO_1データ構造とパス文字列を受け取るバッファーへのポインター。
-
cbBuf [in]
-
pData が指すバッファーのサイズ (バイト単位)。 バッファーには、 ADDJOB_INFO_1 構造体とパス文字列を格納するのに十分な大きさにする必要があります。
-
pcbNeeded [out]
-
ADDJOB_INFO_1データ構造の合計サイズ (バイト単位) とパス文字列を受け取る変数へのポインター。 この値が cbBuf 以下で、関数が成功した場合、これは pData が指すバッファーに書き込まれた実際のバイト数です。 この数が cbBuf より大きい場合、バッファーは小さすぎるため、少なくとも *pcbNeeded と同じ大きさのバッファー サイズで関数を再度呼び出す必要があります。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合は、0 を返します。
注釈
注意
これはブロック関数または同期関数であり、すぐには返されない可能性があります。 この関数が返す速度は、ネットワーク状態、プリント サーバーの構成、プリンター ドライバーの実装要因など、アプリケーションの作成時に予測が困難な実行時の要因によって異なります。 ユーザー インターフェイスとの対話を管理するスレッドからこの関数を呼び出すと、アプリケーションが応答しなくなる可能性があります。
CreateFile 関数を呼び出して、ADDJOB_INFO_1構造体の Path メンバーによって指定されたスプール ファイルを開き、WriteFile 関数を呼び出して印刷ジョブ データを書き込むことができます。 これが完了したら、 ScheduleJob 関数を呼び出して、印刷用スプーラーが印刷ジョブをスケジュールできるようになったことを印刷スプーラーに通知します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|
Unicode 名と ANSI 名 |
AddJobW (Unicode) と AddJobA (ANSI) |