共用方式為


MAPI 中的錯誤處理

適用於:Outlook 2013 |Outlook 2016

成功、警告和錯誤值會使用稱為結果句柄的32位數位或HRESULT傳回。 HRESULT 其實不是任何事物的句柄;它只是一個 32 位的值,其中有數個字段在值中編碼。 零個結果表示成功,而非零的結果表示失敗。

32 位平臺上的MAPI僅適用於 HRESULT 值。

下圖顯示32位平臺的HRESULT格式。

HRESULT format

HRESULT 格式

HRESULT 中的高順序位表示傳回值代表成功或失敗。 如果設定為零,則值表示成功。 如果設定為 1,則表示失敗。

R、C、N 和 r 位會保留在 HRESULT 中。

這兩個版本中的設備欄位都指出錯誤的責任區域。 有數個設施,但大部分的MAPI錯誤都使用FACILITY_ITF來表示介面錯誤。 目前使用的最常見的設施包括:FACILITY_NULL、FACILITY_ITF、FACILITY_DISPATCH、FACILITY_RPC和FACILITY_STORAGE。 如果需要新的設施,Microsoft 會加以配置,因為它們必須是唯一的。 下表描述各種設施欄位。

Facility 描述
FACILITY_NULL
如需廣泛適用的常見狀態代碼,例如S_OK或E_OUTOF_MEMORY;值為零。
FACILITY_ITF
對於大部分從介面方法傳回的狀態代碼;值是由介面所定義。 也就是說,兩個 HRESULT 值與從兩個不同介面傳回的 32 位值完全相同,可能會有不同的意義。
FACILITY_DISPATCH
對於晚期綁定 IDispatch 介面錯誤。
FACILITY_RPC
針對從遠端過程調用傳回的狀態代碼。
FACILITY_STORAGE
針對與結構化記憶體相關的 IStorageIStream 方法呼叫所傳回的狀態代碼。 在 Windows 錯誤碼 (範圍內,程式代碼 (較低 16 位) 值的狀態代碼,也就是小於 256) 與對應的 Windows 錯誤具有相同的意義。

程式代碼欄位是指派來表示錯誤或警告的唯一數位。