Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет реализацию интерфейса IBackgroundCopyCallback в BITS. Используйте интерфейс 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 |
| целевая платформа | Виндоус |
| Header | bits.h |
| Library | Bits.lib |
| DLL | QmgrPrxy.dll |
См. также
IBackgroundCopyJob2::SetNotifyCmdLine