<Return[S]><Top>

SetJob

Declare Function Api_SetJob& Lib "winspool.drv" Alias "SetJobA" (ByVal hPrinter&, ByVal JobId&, ByVal Level&, pJob As Byte, ByVal Command&)

Declare Function SetJob Lib "winspool.drv" Alias "SetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal Command As Long) As Long

指定されたプリンタの印刷ジョブの一時停止、再開、取り消し、再実行を行う。優先順位やドキュメント名など、印刷ジョブのパラメータも設定できる。
Windows 95: 印刷ジョブに対するコマンドの実行、または印刷ジョブのパラメータの設定ができる。ただし、両方を 1 回の呼び出しで行うことはできない。Command が 0 以外のときは、Level と pJob が無視される。印刷ジョブのパラメータを設定するときは、Command を 0 に設定しなければならない。
Windows NT: 印刷ジョブに対するコマンドの実行、または印刷ジョブのパラメータの設定ができる。1 回の呼び出しでその一方または両方を行うことができる。Command の値が Level と pJob の使われ方に影響することはない。

パラメータ
hPrinter
    操作対象のプリンタオブジェクトを識別するハンドルを指定する。
JobId
    印刷ジョブの識別子を指定する。印刷ジョブの識別子は、AddJob 関数または StartDoc 関数を使って取得する。
    Windows NT:Level に 3 を指定した場合、パラメータ JobId は、pJob が指す JOB_INFO_3 構造体のメンバ JobId と一致しなければなら

    ない。
Level
    パラメータ pJob が指すジョブ情報構造体の種類を指定する。0、1、2 を指定できる。
    Level に 0 を指定した場合、pJob には NULL を指定する。これらの値は、印刷ジョブのパラメータを設定しないときに使う。
    Windows NT:Level に 3 を指定することもできる。
    Windows 95: このパラメータの値は、Command の値が 0 のときだけ意味を持つ。Command に 0 以外の値を指定したとき、このパラメー

    タと pJob は無視される。
pJob
    JOB_INFO_1 構造体または JOB_INFO_2 構造体へのポインタを指定する。この構造体は、印刷ジョブのパラメータを設定するために使

    われる。
    Windows NT:JOB_INFO_3 構造体へのポインタを指定することもできる。
    Level が 0 のときは、pJob に NULL を指定する。
    Level が 1 のときは、pJob に JOB_INFO_1 構造体へのポインタを指定する。Level が 0 のときは、JOB_INFO_2 構造体へのポインタを

    指定する。
    Windows NT: Level が 3 のときは、JOB_INFO_3 構造体へのポインタを指定する。その場合、JOB_INFO_3 構造体のメンバ JobId と

    NextJobId で指定されるジョブに対する JOB_ACCESS_ADMINISTER アクセス権が必要である。
    Windows 95: このパラメータの値は、Command の値が 0 のときだけ意味を持つ。Command に 0 以外の値を指定したとき、このパラメー

    タと Level は無視される。
Command
    印刷ジョブに対して実行する操作を指定する。次のいずれかの値が使る。

    値                                         

意味                                                                                                                                   

    JOB_CONTROL_CANCEL

印刷ジョブを削除する。

    JOB_CONTROL_PAUSE

印刷ジョブを一時停止する。

    JOB_CONTROL_RESTART

印刷ジョブを再実行する。ジョブを再実行できるのは、そのジョブが印刷されていた場合だけである。

    JOB_CONTROL_RESUME

 

 

 

 

一時停止している印刷ジョブを再開する。
Windows 95:SetJob 関数を使って印刷ジョブのパラメータを設定するときは、Command を 0 に設定しなければならない。
Windows NT: 印刷ジョブのパラメータ設定と印刷ジョブに対するコマンド実行を、SetJob 関数を 1 回呼び出すだけで行うことができる。そのため、印刷ジョブのパラメータを設定する場合でも、Command を 0 にする必要はない。ただし、Command を 0 にすることもできる。


戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    必要なデータが格納されている JOB_INFO_1 構造体、JOB_INFO_2 構造体、または JOB_INFO_3 構造体へのポインタを SetJob 関

    数に渡すことによって、 印刷ジョブのさまざまなパラメータを設定できる。
    Windows 95: この関数を使って印刷ジョブのパラメータを設定する場合は、Command を 0 に設定しなければならない。
    特定のプリンタの印刷ジョブをすべて削除するには、Command に PRINTER_CONTROL_PURGE を指定した SetPrinter 関数を使う。
    JOB_INFO_1 構造体または JOB_INFO_2 構造体のメンバ JobId、pPrinterName、pMachineName、pDrivername、Size、

    Submitted、Time は、SetJob の呼び出しでは無視される。
    印刷ジョブの印刷キュー内での位置を変更する場合は、そのプリンタの PRINTER_ACCESS_ADMINISTER アクセス権が必要である。
    印刷ジョブの印刷キュー内での位置を変更したくないときは、JOB_INFO_1 構造体または JOB_INFO_2 構造体のメンバ Position を

    JOB_POSITION_UNSPECIFIED に設定する。
    Windows NT: 複数の印刷ジョブを連結して 1 つにするときは JOB_INFO_3 構造体を使う。これは、1 つの文書を分割し、それぞれの部

    分を別々に印刷したい場合に便利である。