次の方法で共有


IBackgroundCopyJob2::SetNotifyCmdLine メソッド (bits1_5.h)

ジョブが BG_JOB_STATE_ERRORまたはBG_JOB_STATE_TRANSFERRED 状態に入った場合に実行するプログラム 指定します。 BITS は、このメソッドを呼び出したユーザーのコンテキストでプログラムを実行します。

構文

HRESULT SetNotifyCmdLine(
  [in] LPCWSTR Program,
  [in] LPCWSTR Parameters
);

パラメーター

[in] Program

実行するプログラムを含む null で終わる文字列。 pProgram パラメーターは、null ターミネータを含めず、MAX_PATH文字に制限されます。 プログラムへの完全なパスを指定する必要があります。メソッドは、プログラムを見つけるために検索パスを使用しません。

コマンド ライン通知を削除するには、 pProgrampParameters をNULL に設定します。 pProgramNULL で、pParametersNULL 以外の場合、メソッドは失敗します。

[in] Parameters

pProgram 内のプログラムのパラメーターを含む null で終わる文字列。 最初のパラメーターは pProgram のプログラムである必要があります (パスで長いファイル名を使用する場合は引用符を使用します)。 pParameters パラメーターは、null ターミネータを含まない 4,000 文字に制限されています。 このパラメーターは NULL できます。

戻り値

このメソッドは、次の HRESULT 値と他の値を返します。

リターン コード Description
S_OK
成功。
BG_E_INVALID_STATE
ジョブの状態を BG_JOB_STATE_CANCELLED または BG_JOB_STATE_ACKNOWLEDGEDすることはできません。
BG_E_STRING_TOO_LONG
pProgram または pParameters 文字列が長すぎます。

注釈

BITS は CreateProcessAsUser 関数を呼び出してプログラムを起動します。

プログラムは 0 の終了コードを返す必要があります。 プログラムが終了コード 0 を返さない場合、BITS はジョブの状態をチェックします。 プログラムがジョブをキャンセルまたは完了しなかった場合、BITS はジョブに指定された 最小再試行遅延 の有効期限が切れた後に、プログラムを再度呼び出します。

BITS 1.5 以前: BITS はプログラムを 1 回だけ呼び出します。

スクリプトを実行するには、WScript.exe (WScript.exeへの完全なパスを含む) を pProgram に指定します。 pParameters パラメーターには、WScript.exe、スクリプト名、および引数を含める必要があります。

プログラムにジョブ関連情報が必要な場合は、この情報を引数として渡す必要があります。 %system32%などの環境変数を pProgrampParameters に含めないでください。これらは展開されません。

プログラムへの完全なパスを含める必要があります。 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

IBackgroundCopyJob::SetNotifyFlags

IBackgroundCopyJob::SetNotifyInterface