IBackgroundCopyCallback::JobError 方法 (bits.h)
當作業的狀態變更為BG_JOB_STATE_ERROR時,BITS 會呼叫 JobError 方法的實作。
語法
HRESULT JobError(
[in] IBackgroundCopyJob *pJob,
[in] IBackgroundCopyError *pError
);
參數
[in] pJob
包含作業相關信息,例如發生錯誤之前傳輸的位元組和檔案數目。 它也包含繼續和取消作業的方法。 不要發行 pJob;當 JobError 方法傳回時,BITS 會釋放介面。
[in] pError
包含錯誤資訊,例如在發生嚴重錯誤時正在處理的檔案,以及錯誤的描述。 不要發行 pError;當 JobError 方法傳回時,BITS 會釋放介面。
傳回值
這個方法應該會 傳回S_OK;否則,BITS 會繼續呼叫這個方法,直到 傳回S_OK 為止。 基於效能考慮,您應該將傳回 S_OK以外的值 次數限製為數次。 除了傳回錯誤碼,請考慮一律傳回 S_OK 並在內部處理錯誤。 呼叫這個方法的間隔是任意的。
請注意,如果此方法失敗,而且您呼叫 了IBackgroundCopyJob2::SetNotifyCmdLine 方法,則會執行命令行,而且不會再次呼叫此方法。
備註
判斷錯誤的原因之後,請執行下列其中一個選項:
- 若要取消作業,請呼叫 IBackgroundCopyJob::Cancel 方法。 如果成功上傳檔案之後發生錯誤,取消要求不會影響上傳作業。 不過,如果作業類型BG_JOB_TYPE_UPLOAD_REPLY且上傳成功,則呼叫 Cancel 方法會取消回復數據的要求。
- 若要接受在發生錯誤之前成功傳輸之作業的部分,請呼叫 IBackgroundCopyJob::Complete 方法。 此選項不適用於上傳作業;您無法完成上傳工作的一部分。
- 若要完成處理作業,請修正問題,然後呼叫 IBackgroundCopyJob::Resume 方法。
暫時性錯誤不會產生 JobError 方法的呼叫。
若要判斷上傳回復作業的上傳、回復或伺服器應用程式部分失敗,請呼叫 IBackgroundCopyError::GetError 方法來擷取發生錯誤 的內容 。 如果內容BG_ERROR_CONTEXT_REMOTE_APPLICATION,伺服器應用程式會失敗。 上傳和回復的內容BG_ERROR_CONTEXT_REMOTE_FILE。 如果未BG_SIZE_UNKNOWN BG_JOB_REPLY_PROGRESS結構的 BytesTotal 成員,回復會失敗。 否則,上傳失敗。
範例
請參閱 IBackgroundCopyCallback 介面的範例程序代碼。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
最低支援的伺服器 | Windows Server 2003 |
目標平台 | Windows |
標頭 | bits.h |