System.Win.ComObj.TAutoIntfObject.SafeCallException

提供: RAD Studio API Documentation
移動先: 案内検索

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 の処理が正しく機能するように環境設定されます。