MAPI 中的錯誤處理
適用於:Outlook 2013 |Outlook 2016
成功、警告和錯誤值會使用稱為結果句柄的32位數位或HRESULT傳回。 HRESULT 其實不是任何事物的句柄;它只是一個 32 位的值,其中有數個字段在值中編碼。 零個結果表示成功,而非零的結果表示失敗。
32 位平臺上的MAPI僅適用於 HRESULT 值。
下圖顯示32位平臺的HRESULT格式。
HRESULT format
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 |
針對與結構化記憶體相關的 IStorage 或 IStream 方法呼叫所傳回的狀態代碼。 在 Windows 錯誤碼 (範圍內,程式代碼 (較低 16 位) 值的狀態代碼,也就是小於 256) 與對應的 Windows 錯誤具有相同的意義。 |
程式代碼欄位是指派來表示錯誤或警告的唯一數位。