在发生错误后检索错误接口。
当作业的状态 BG_JOB_STATE_ERROR 或BG_JOB_STATE_TRANSIENT_ERROR时,BITS 将生成错误对象。 当调用 IBackgroundCopyXXXX 接口方法失败时,该服务不会创建错误对象。 错误对象在 BITS 开始传输作业(作业的状态更改为BG_JOB_STATE_TRANSFERRING)或应用程序退出之前可用。
Syntax
HRESULT GetError(
[out] IBackgroundCopyError **ppError
);
参数
[out] ppError
提供错误代码、错误说明以及发生错误的上下文的错误接口。 此参数还标识在发生错误时传输的文件。 完成后释放 ppError 。
返回值
此方法返回以下 HRESULT 值以及其他值。
| 返回代码 | Description |
|---|---|
|
已成功生成错误对象。 |
|
错误接口仅在发生错误(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 方法。
若要确定上传-回复作业的上传、回复或服务器应用程序部分是否失败,请调用 IBackgroundCopyError::GetError 方法以检索发生错误的 上下文 。 如果上下文BG_ERROR_CONTEXT_REMOTE_APPLICATION,则服务器应用程序失败。 如果错误是上传或答复,则上下文BG_ERROR_CONTEXT_REMOTE_FILE。 如果BG_JOB_REPLY_PROGRESS结构的 BytesTotal 成员BG_SIZE_UNKNOWN,则上传失败。 否则,答复失败。
例子
请参阅 “处理错误” 主题中的示例代码。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows XP |
| 支持的最低服务器 | Windows Server 2003 |
| 目标平台 | Windows操作系统 |
| Header | bits.h |
| Library | Bits.lib |
| DLL | QmgrPrxy.dll |