IBackgroundCopyJob::GetError 方法 (bits.h)
在发生错误后检索错误接口。
当作业的状态为 BG_JOB_STATE_ERROR或BG_JOB_STATE_TRANSIENT_ERROR 时,BITS 将生成错误对象。 当对 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 方法。
若要确定上载-答复作业的上传、答复或服务器应用程序部分是否失败,请调用 IBackgroundCopyError::GetError 方法以检索发生错误的 上下文 。 如果上下文BG_ERROR_CONTEXT_REMOTE_APPLICATION,则服务器应用程序失败。 如果错误与上传或回复有关,则上下文BG_ERROR_CONTEXT_REMOTE_FILE。 如果BG_SIZE_UNKNOWN BG_JOB_REPLY_PROGRESS结构的 BytesTotal 成员,上传失败。 否则,答复将失败。
示例
请参阅 处理错误 主题中的示例代码。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP |
最低受支持的服务器 | Windows Server 2003 |
目标平台 | Windows |
标头 | bits.h |
Library | Bits.lib |
DLL | QmgrPrxy.dll |