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 値と他の値を返します。

リターン コード 説明
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 回だけ呼び出します。

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

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

プログラムへの完全なパスを含める必要があります。 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 メソッドを呼び出す例については、「プログラムの実行への登録」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2003
対象プラットフォーム Windows
ヘッダー bits1_5.h (Bits.h を含む)
Library Bits.lib
[DLL] BitsPrx2.dll
再頒布可能パッケージ Windows XP の BITS 1.5

こちらもご覧ください

IBackgroundCopyJob2::GetNotifyCmdLine

IBackgroundCopyJob::SetNotifyFlags

IBackgroundCopyJob::SetNotifyInterface