カスタム インターフェイス

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

オートメーション インターフェイス への移動


カスタム インターフェイスは、クライアントで vtable(仮想テーブル)での順序と引数の型に基づいてインターフェイス メソッドを呼び出すことができるユーザー定義インターフェイスです。vtable は、オブジェクトのメンバであるすべてのプロパティおよびメソッドのアドレスをリストにしたもので、この中には、オブジェクトがサポートしているインターフェイスのメンバ関数も含まれています。オブジェクトが IDispatch をサポートしていない場合は、そのオブジェクトのカスタム インターフェイスのメンバのエントリが IUnknown のメンバの直後に続きます。

オブジェクトにタイプ ライブラリがある場合は、そのオブジェクトの vtable レイアウトを通じてカスタム インターフェイスにアクセスすることができます。このレイアウトは、タイプ ライブラリ エディタを使って取得できます。オブジェクトにタイプ ライブラリがあり、オブジェクトが IDispatch もサポートしている場合、クライアントでは、IDispatch インターフェイスの dispID を取得し vtable オフセットに直接バインドすることもできます。Delphi のタイプ ライブラリ インポータ(TLIBIMP)ではインポート時に dispID を取得するので、ディスパッチ インターフェイスを使用するクライアントでは、GetIDsOfNames を呼び出す必要はありません。この情報が _TLB ユニットに既に存在するからです。ただし、クライアントではそれでも Invoke を呼び出す必要はあります。