IBackgroundCopyJob::SetNotifyInterface 方法 (bits.h)
識別對 BITS 的 IBackgroundCopyCallback 介面實作。 使用 IBackgroundCopyCallback 介面來接收作業相關事件的通知。
語法
HRESULT SetNotifyInterface(
IUnknown *Val
);
參數
Val
IBackgroundCopyCallback 介面指標。 若要移除目前的回呼介面指標,請將此參數設定為 NULL。
傳回值
這個方法會傳回下列 HRESULT 值,以及其他值。
傳回碼 | Description |
---|---|
|
已成功設定通知介面指標。 |
|
作業的狀態不能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 |
程式庫 | Bits.lib |
Dll | QmgrPrxy.dll |
另請參閱
IBackgroundCopyJob2::SetNotifyCmdLine