Метод IBackgroundCopyJob::SetNotifyInterface (bits.h)
Определяет реализацию интерфейса IBackgroundCopyCallback в BITS. Используйте интерфейс 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 |
Header | bits.h |
Библиотека | Bits.lib |
DLL | QmgrPrxy.dll |
См. также раздел
IBackgroundCopyJob2::SetNotifyCmdLine