System.HResult
Delphi
type HResult = Integer;
C++
typedef HRESULT HResult; //
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
type typedef |
public | System.pas sysmac.h |
System | System |
説明
HResult は、エラー コードを返す関数の戻り値型です。
多くの関数が HResult 値を返して、オペレーションの成功または失敗を示します。 このデータ型は、元は Win32 プラットフォーム用に定義されたものですが、今ではさまざまなプラットフォーム上で動く数多くの API で使われています。 HResult 値の正確な使用方法は API によってさまざまですが、一定の基礎的な規約は通常以下のとおりです。
HResult 値は 32 ビットで、上位ビットから順に、以下のフィールドで構成されています。
- 1 ビットの重要度のフィールド。 重要度ビットは、致命的なエラーが発生した場合に
1
、それ以外は0
になります。 - 4 ビットの使われていないフィールド。
- 11 ビットの機能コード。HResult 値の一般的な性質を示します。 汎用の HResult 値の機能コードは
0
です。 - 16 ビットのエラー コード。具体的なエラーを表します。 エラー コード
0
は、エラーが発生しなかったことを表します。
次の表は、HResult 型の値の一覧です:
定数 | 16 進数 | 意味 |
---|---|---|
S_OK |
0 |
エラーは発生しませんでした。 API によっては、操作が成功して True の値が返されたことを S_OK で示します。 |
S_FALSE |
$00000001 |
エラーは発生しませんでしたが、操作から有益な結果が得られませんでした。 API によっては、操作が成功して False の値が返されたことを S_FALSE で示します。 |
E_NOINTERFACE |
$80004002 |
インターフェイスがサポートされていません。 |
E_UNEXPECTED |
$8000FFFF |
重大な障害が発生しました。 |
E_NOTIMPL |
$80004001 |
操作が実装されていません。 |
上記の定数名では、先頭の S_ および E_ が、重要度ビットの値に対応しています。