MAPI でのエラー処理
適用対象: Outlook 2013 | Outlook 2016
成功、警告、エラーの値は、結果ハンドルまたは HRESULT と呼ばれる 32 ビットの数値を使用して返されます。 HRESULT は実際には何のハンドルにもなりません。これは、値にエンコードされた複数のフィールドを持つ単なる 32 ビット値です。 0 の結果は成功を示し、0 以外の結果は失敗を示します。
32 ビット プラットフォームの MAPI は、HRESULT 値でのみ機能します。
次の図は、32 ビット プラットフォームの HRESULT 形式を示しています。
HRESULT の書式
HRESULT の上位ビットは、戻り値が成功または失敗を表しているかどうかを示します。 0 に設定すると、値は成功を示します。 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など、広く適用可能な一般的な状態コードの場合。値は 0 です。 |
FACILITY_ITF |
インターフェイス メソッドから返されるほとんどの状態コードの場合。値は インターフェイスによって定義されます。 つまり、2 つの異なるインターフェイスから返されるまったく同じ 32 ビット値を持つ 2 つの HRESULT 値は、異なる意味を持つ可能性があります。 |
FACILITY_DISPATCH |
遅延バインディング IDispatch インターフェイス エラーの場合。 |
FACILITY_RPC |
リモート プロシージャ呼び出しから返される状態コードの場合。 |
FACILITY_STORAGE |
構造化ストレージに関連する IStorage または IStream メソッド呼び出しから返される状態コードの場合。 Windows エラー コードの範囲内のコード (下位 16 ビット) の状態コード (つまり、256 未満) は、対応する Windows エラーと同じ意味を持ちます。 |
コード フィールドは、エラーまたは警告を表すために割り当てられる一意の数値です。