共用方式為


MAPI 擴充錯誤

適用於:Outlook 2013 |Outlook 2016

介面方法的實作者可以選擇只傳回成功 (S_OK) 和失敗 (MAPI_E_CALL_FAILED) 或區分錯誤狀況,傳回與情況一樣多的錯誤值。 大部分的情況都可以使用MAPI在 MAPICODE 中定義的其中一個錯誤值。H 頭檔。 不過,對於預先定義的值未涵蓋的情況,可以使用值MAPI_E_EXTENDED_ERROR。 MAPI_E_EXTENDED_ERROR會向呼叫端指出有關於錯誤的詳細資訊。 呼叫端會在傳回MAPI_E_EXTENDED_ERROR的相同物件上呼叫 GetLastError 方法,以擷取其他資訊。

您可以呼叫 GetLastError 來擷取任何錯誤碼的相關信息,而不只是MAPI_E_EXTENDED_ERROR。 許多MAPI物件會實作包含 GetLastError 方法的 介面。 GetLastError 會 傳回單一 MAPIERROR 結構,理論上包含上一個方法呼叫所產生之所有錯誤的串連。 如需詳細資訊,請參閱 MAPIERROR。 作為呼叫者,最好不要依賴此額外的錯誤資訊,因為對象實作者不需要提供它。 不過,強烈建議每當實作者傳回MAPI_E_EXTENDED_ERROR時,它們可讓呼叫端擷取 MAPIERROR 結構,並提供有關錯誤的實用資訊。

由於 GetLastError 也是屬於 Windows SDK 的 API 函式,因此很容易就會忘記,在 MAPI 中,GetLastError 是一種介面方法,而且只能在 MAPI 物件上呼叫。 另一個容易犯錯的錯誤是在錯誤的物件上呼叫 GetLastError 。 必須在產生錯誤的物件上呼叫 GetLastError。 例如,如果您的用戶端進行會話呼叫,且MAPI將呼叫轉送至服務提供者來執行工作,您的用戶端就不應該在服務提供者物件上呼叫 GetLastErrorIMAPISession::GetLastError 是正確的呼叫;應該在會話物件上叫用 GetLastError 。 如需詳細資訊,請參閱 IMAPISession::GetLastError