IBackgroundCopyJob::SetNotifyInterface メソッド (bits.h)

BITS への IBackgroundCopyCallback インターフェイスの実装を識別します。 IBackgroundCopyCallback インターフェイスを使用して、ジョブ関連のイベントの通知を受信します。

構文

HRESULT SetNotifyInterface(
  IUnknown *Val
);

パラメーター

Val

IBackgroundCopyCallback インターフェイス ポインター。 現在のコールバック インターフェイス ポインターを削除するには、このパラメーターを NULL に設定します。

戻り値

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

リターン コード 説明
S_OK
通知インターフェイス ポインターが正常に設定されました。
BG_E_INVALID_STATE
ジョブの状態をBG_JOB_STATE_CANCELLEDまたはBG_JOB_STATE_ACKNOWLEDGEDすることはできません。

注釈

IBackgroundCopyCallback インターフェイスを実装する場合にのみ、このメソッドを呼び出します。 SetNotifyInterface メソッドを SetNotifyFlags メソッドと組み合わせて使用して、受信する通知の種類を指定します。

アプリケーションが終了すると、通知インターフェイスが無効になります。BITS では、通知インターフェイスは保持されません。 その結果、アプリケーションの初期化プロセスでは、通知を受信する既存のジョブに対して SetNotifyInterface メソッドを呼び出す必要があります。 前回のアプリケーションの実行以降に発生した状態と進行状況の情報をキャプチャする必要がある場合は、アプリケーションの初期化中に状態と進行状況の情報をポーリングします。

登録したイベントが既に発生した場合でも、BITS によってコールバックが呼び出されることに注意してください。

コールバック通知を受信する代わりに、エラーと転送されたイベントのコマンド ラインを BITS で実行するように登録できます。 詳細については、 IBackgroundCopyJob2::SetNotifyCmdLine メソッドを参照してください。

複数のアプリケーションが SetNotifyInterface メソッドを呼び出してジョブの通知インターフェイスを設定する場合、 SetNotifyInterface メソッドを呼び出す最後のアプリケーションは通知を受信するアプリケーションであり、他のアプリケーションは通知を受け取りません。

次の例は 、SetNotifyInterface メソッドを呼び出す方法を示しています。 次の例で使用する CNotifyInterface クラスの例の詳細については、 IBackgroundCopyCallback インターフェイスを参照してください。 この例では、 IBackgroundCopyJob インターフェイス ポインターが有効であると想定しています。

IBackgroundCopyJob* pJob;
CNotifyInterface* pNotify = new CNotifyInterface();

hr = pJob->SetNotifyInterface(pNotify);
if (SUCCEEDED(hr))
{
  hr = pJob->SetNotifyFlags(BG_NOTIFY_JOB_TRANSFERRED | 
                            BG_NOTIFY_JOB_ERROR);
}
pNotify->Release();
pNofity = NULL;

if (FAILED(hr))
{
  //Handle error - unable to register for event notification.
}

要件

要件
サポートされている最小のクライアント Windows XP
サポートされている最小のサーバー Windows Server 2003
対象プラットフォーム Windows
ヘッダー bits.h
Library Bits.lib
[DLL] QmgrPrxy.dll

こちらもご覧ください

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags