Метод IBackgroundCopyJob::GetError (bits.h)
Извлекает интерфейс ошибки после возникновения ошибки.
BITS создает объект ошибки, если задание находится в состоянии BG_JOB_STATE_ERROR или BG_JOB_STATE_TRANSIENT_ERROR. Служба не создает объект ошибки при сбое вызова метода интерфейса IBackgroundCopyXXXX . Объект ошибки доступен до тех пор, пока BITS не начнет передачу данных (состояние задания изменится на BG_JOB_STATE_TRANSFERRING) для задания или пока приложение не завершит работу.
Синтаксис
HRESULT GetError(
[out] IBackgroundCopyError **ppError
);
Параметры
[out] ppError
Интерфейс ошибки, предоставляющий код ошибки, описание ошибки и контекст, в котором произошла ошибка. Этот параметр также определяет файл, передаваемый во время возникновения ошибки. По завершении отпустите ppError .
Возвращаемое значение
Этот метод возвращает следующие значения HRESULT , а также другие.
Код возврата | Описание |
---|---|
|
Объект ошибки успешно создан. |
|
Интерфейс ошибки доступен только после возникновения ошибки (BG_JOB_STATE_ERROR или BG_JOB_STATE_TRANSIENT_ERROR) и до начала передачи данных BITS (BG_JOB_STATE_TRANSFERRING). |
Комментарии
Задание помещается в состояние ошибки при неустранимых ошибках или по истечении периода времени ожидания для временных ошибок (этот период извлекается из метода GetNoProgressTimeout ). Используйте один из следующих параметров, чтобы определить, есть ли ошибка в задании:
- Чтобы опросить состояние задания, вызовите метод IBackgroundCopyJob::GetState . Если состояние BG_JOB_STATE_ERROR, задание завершается ошибкой.
- Чтобы получать уведомления при возникновении ошибки, реализуйте интерфейс IBackgroundCopyCallback (в частности, метод JobError ). Затем вызовите метод IBackgroundCopyJob::SetNotifyInterface , чтобы зарегистрировать обратный вызов, и метод IBackgroundCopyJob::SetNotifyFlags , чтобы задать флаг BG_NOTIFY_JOB_ERROR.
- Чтобы отменить задание, вызовите метод IBackgroundCopyJob::Cancel .
- Чтобы сохранить файлы, которые были успешно переданы до возникновения ошибки, вызовите метод IBackgroundCopyJob::Complete .
- Чтобы завершить обработку задания, устраните проблему, а затем вызовите метод IBackgroundCopyJob::Resume .
Чтобы определить, произошел ли сбой при отправке, ответе или серверном приложении задания upload-reply, вызовите метод IBackgroundCopyError::GetError , чтобы получить контекст , в котором произошла ошибка. Сбой серверного приложения, если контекст BG_ERROR_CONTEXT_REMOTE_APPLICATION. Если ошибка связана с отправкой или ответом, контекст BG_ERROR_CONTEXT_REMOTE_FILE. Сбой отправки, если элемент BytesTotal структуры BG_JOB_REPLY_PROGRESS BG_SIZE_UNKNOWN. В противном случае ответ завершится ошибкой.
Примеры
См. пример кода в разделе Обработка ошибок .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP |
Минимальная версия сервера | Windows Server 2003 |
Целевая платформа | Windows |
Header | bits.h |
Библиотека | Bits.lib |
DLL | QmgrPrxy.dll |