最終更新:2008-07-18 (金) 08:46:00 (6128d)
IDispatch
Top / IDispatch
COMでイベント処理をするときに使うインターフェイス (リフレクションによる遅延バインディング)。Invokeとかする。
COMコンポーネント?で発生したイベントを受け取るには、IDispatchインターフェースをサポートしなければならない。イベントを受け取るオブジェクトのことをCOMの世界の言葉でシンク(sink?)と言う。
メモ
- IDispatch は、事実上ほかのあらゆる COMインターフェイスを呼び出し可能なように設計された COMインターフェイスです。Microsoft Visual Basic を使って開発する場合は、C または C++ と同じように COMインターフェイスを呼び出すことはできません。
- ただし、Visual Basic のように IDispatch をサポートするツールがあり、かつ呼び出すオブジェクトが IDispatch をサポートしていれば、間接的に COMインターフェイスを呼び出すことはできます。
- IDispatch によって提供されるメインのメソッドは Invoke という名前です。IDispatch を使う場合、メンバー メソッドを直接呼び出す代わりに IDispatch::Invoke を呼び出すと、IDispatch::Invoke がメンバー メソッドを呼び出します。
- VB.NET では、IDispatch::GetIDsOfNames? メソッドを使用して、そのオブジェクトでサポートされているメソッドおよびプロパティを確認し、IDispatch::Invoke メソッドを使用して、それらのメソッドやプロパティを呼び出すことができます。