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 值,以及其他值。
傳回碼 | 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,則上傳失敗。 否則,回復失敗。
範例
請參閱 處理錯誤 主題中的範例程式代碼。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
最低支援的伺服器 | Windows Server 2003 |
目標平台 | Windows |
標頭 | bits.h |
程式庫 | Bits.lib |
Dll | QmgrPrxy.dll |