System.Win.ComObj.TAutoIntfObject.SafeCallException
Delphi
function SafeCallException(ExceptObject: TObject;
ExceptAddr: Pointer): HResult; override;
C++
virtual HRESULT __fastcall SafeCallException(System::TObject* ExceptObject, void * ExceptAddr);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Win.ComObj.pas System.Win.ComObj.hpp |
System.Win.ComObj | TAutoIntfObject |
説明
SafeCallException は,OLE 例外処理で使用します。
SafeCallException メソッドは,そのスコープ外に制御が移るのを防ぎます。また,発生した例外はすべてメソッド内で処理する必要があります。
safecall メソッドを実装すると,黙示的な exception ブロックにそのメソッドのコードを記述しても例外によって制御が移りません。
メモ: SafeCallException はグローバルルーチンの HandleSafeCallException を呼び出します。HandleSafeCallException はこの動作の標準的な処理方法を提供します。この関数は OLE 例外処理をサポートする(ISupportErrorInfo インターフェースを実装する)CoClass の各メソッドに影響を与えます。これらの CoClass メソッドが SafeCall 呼び出し規約を使用する場合,それらは HRESULT を返すように変更されます。手続きは HRESULT を返し,関数はそれらの通常の結果の値を最後の(出力)パラメータとして渡して,かわりに HRESULT を返します。メソッドは exception ブロックに封入され,その後 HRESULT が返されて,ISupportErrorInfo の処理が正しく機能するように環境設定されます。