IBackgroundCopyJob::SetNotifyInterface 方法 (bits.h)
标识对 BITS 的 IBackgroundCopyCallback 接口的实现。 使用 IBackgroundCopyCallback 接口接收作业相关事件的通知。
语法
HRESULT SetNotifyInterface(
IUnknown *Val
);
参数
Val
IBackgroundCopyCallback 接口指针。 若要删除当前回调接口指针,请将此参数设置为 NULL。
返回值
此方法返回以下 HRESULT 值以及其他值。
返回代码 | 说明 |
---|---|
|
已成功设置通知接口指针。 |
|
作业的状态不能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 |
另请参阅
IBackgroundCopyJob2::SetNotifyCmdLine