共用方式為


IBackgroundCopyJob::SetNotifyInterface 方法(bits.h)

識別你對 BITS 介面的 IBackgroundCopyCallback 實作。 使用 IBackgroundCopyCallback 介面接收與工作相關的事件通知。

語法

HRESULT SetNotifyInterface(
  IUnknown *Val
);

參數

Val

一個 IBackgroundCopyCallback 介面指標。 要移除目前的回調介面指標,請將此參數設為 NULL。

返回值

此方法回傳以下 HRESULT 值及其他值。

回傳碼 Description
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.
}

需求

Requirement 價值觀
最低支援的用戶端 視窗XP
支援的最低伺服器 Windows Server 2003
目標平臺 窗戶
Header Bits.h
Library Bits.lib
DLL QmgrPrxy.dll

另請參閱

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags