ジョブが BG_JOB_STATE_ERRORまたはBG_JOB_STATE_TRANSFERRED 状態に入った場合に実行するプログラム を 指定します。 BITS は、このメソッドを呼び出したユーザーのコンテキストでプログラムを実行します。
構文
HRESULT SetNotifyCmdLine(
[in] LPCWSTR Program,
[in] LPCWSTR Parameters
);
パラメーター
[in] Program
実行するプログラムを含む null で終わる文字列。 pProgram パラメーターは、null ターミネータを含めず、MAX_PATH文字に制限されます。 プログラムへの完全なパスを指定する必要があります。メソッドは、プログラムを見つけるために検索パスを使用しません。
コマンド ライン通知を削除するには、 pProgram と pParameters をNULL に設定します。 pProgram が NULL で、pParameters が NULL 以外の場合、メソッドは失敗します。
[in] Parameters
pProgram 内のプログラムのパラメーターを含む null で終わる文字列。 最初のパラメーターは pProgram のプログラムである必要があります (パスで長いファイル名を使用する場合は引用符を使用します)。 pParameters パラメーターは、null ターミネータを含まない 4,000 文字に制限されています。 このパラメーターは NULL できます。
戻り値
このメソッドは、次の HRESULT 値と他の値を返します。
| リターン コード | Description |
|---|---|
|
成功。 |
|
ジョブの状態を BG_JOB_STATE_CANCELLED または BG_JOB_STATE_ACKNOWLEDGEDすることはできません。 |
|
pProgram または pParameters 文字列が長すぎます。 |
注釈
BITS は CreateProcessAsUser 関数を呼び出してプログラムを起動します。
プログラムは 0 の終了コードを返す必要があります。 プログラムが終了コード 0 を返さない場合、BITS はジョブの状態をチェックします。 プログラムがジョブをキャンセルまたは完了しなかった場合、BITS はジョブに指定された 最小再試行遅延 の有効期限が切れた後に、プログラムを再度呼び出します。
BITS 1.5 以前: BITS はプログラムを 1 回だけ呼び出します。
スクリプトを実行するには、WScript.exe (WScript.exeへの完全なパスを含む) を pProgram に指定します。 pParameters パラメーターには、WScript.exe、スクリプト名、および引数を含める必要があります。
プログラムにジョブ関連情報が必要な場合は、この情報を引数として渡す必要があります。 %system32%などの環境変数を pProgram や pParameters に含めないでください。これらは展開されません。
プログラムへの完全なパスを含める必要があります。 pParameters のいずれかの引数に、モジュール名などの長いファイル名を使用するパスが含まれている場合は、パスを引用符で囲みます。
実行するプログラムが応答またはダウンロード ファイルを使用する場合、プログラムは IBackgroundCopyJob::Complete メソッドを呼び出して、ファイルをクライアントで使用できるようにする必要があります。
IBackgroundCopyJob::SetNotifyFlags メソッドを呼び出して、プログラムを実行するタイミングを指定します。 コマンド ラインの実行は、ジョブエラーまたは転送されたイベントに対してのみ要求でき、ジョブ変更イベントは要求できません。 イベントの発生後に SetNotifyCmdLine メソッドを呼び出しても、BITS は引き続きコマンド ラインを実行します。
BITS ジョブがサービス アカウント コンテキスト (networkservice/localsystem/localservice) 内にある場合、コマンド ライン コールバックの形式は実行されません。
SetNotifyCmdLine メソッドと IBackgroundCopyJob::SetNotifyInterface メソッドの両方を呼び出すと、BITS は、通知インターフェイスが無効になった場合、または BITS が呼び出す通知メソッドがエラー コードを返す場合にのみ、コマンド ラインを実行します。 たとえば、BITS が呼び出す通知メソッドがE_FAILを返す場合、BITS はコマンド ラインを実行します。 ただし、通知メソッドが S_OKを返した場合、BITS はコマンド ラインを実行しません。 通知メソッドとコマンド ライン実行要求の両方が失敗した場合、BITS は最小再試行期間が経過した後に通知を再度送信します。
IBackgroundCopyJob::TakeOwnership メソッドを呼び出すと、ジョブからコマンド ライン通知が削除されることに注意してください。
例示
SetNotifyCmdLine メソッドを呼び出す例については、「プログラムの実行への登録」を参照してください。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows Vista |
| サポートされている最小のサーバー | Windows Server 2003 |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | bits1_5.h (Bits.h を含む) |
| Library | Bits.lib |
| DLL | BitsPrx2.dll |
| 再頒布可能 | Windows XP の BITS 1.5 |
こちらも参照ください
IBackgroundCopyJob2::GetNotifyCmdLine