MFC ActiveX コントロール : メソッド
ActiveX コントロールは、自身にコントロール コンテナーの間で通信するためにイベントを発生させます。コンテナーは、メソッドとプロパティによってコントロールと通信できます。メソッドは、関数といいます。
メソッドとプロパティは、オートメーション クライアントと ActiveX コントロール コンテナーなどの他のアプリケーションでの使用にエクスポートされたインターフェイスを提供します。ActiveX コントロールのプロパティの詳細については、技術情報 MFC ActiveX コントロール: プロパティを参照してください。
メソッドも同様の使用中に、 C.C++ のクラスのメンバー関数に設計されています。コントロールが実行できるメソッドの 2 種類があります: ストックとカスタム。ストック イベント、ストック メソッドに似ていますが COleControl 実装を提供するこれらのメソッドは。ストック メソッドの詳細については、技術情報 MFC ActiveX コントロール: ストック メソッドの追加を参照してください。開発者が定義されるカスタム メソッドはコントロールの追加をカスタマイズできます。詳細については、技術情報 MFC ActiveX コントロール: カスタム メソッドの追加を参照してください。
Microsoft Foundation Class ライブラリ (MFC)は、コントロールがストックとカスタム メソッドをサポートできるようにする機能を実装します。最初の一部は、クラス COleControlです。CWndから派生した、 COleControl のメンバー関数は、すべての ActiveX コントロールに共通のストック メソッドをサポートします。この機能の 2 番目の部分は、ディスパッチ マップです。ディスパッチ マップは、メッセージ マップに似ています; ただし、 Windows メッセージ ID に関数をマップする代わりに、ディスパッチ マップは IDispatch の ID に仮想メンバー関数をマップします。
さまざまなメソッドを正しくサポートするコントロールにクラスはディスパッチ マップを宣言する必要があります。これは、コントロール クラスのヘッダーにある次のコード行によって実現されます。H)ファイル:
DECLARE_DISPATCH_MAP()
ディスパッチ マップの主な目的は、外部呼び出し元が使用するメソッド名 (コンテナーなど)とメソッドを実装するコントロール クラスのメンバー関数の関係を確立することです。ディスパッチ マップを宣言すると、コントロールの実装 (.cpp)ファイルで定義されている必要があります。次のコードは、ディスパッチ マップを定義します:
BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
...
END_DISPATCH_MAP()
プロジェクトの作成に MFC ActiveX コントロール ウィザード を使用してこれらの行が自動的に追加されました。MFC ActiveX コントロール ウィザードが使用されていない場合は、次の行を手動で追加します。
次の技術情報は、メソッドの詳細について説明します: