コネクション マップ

更新 : 2007 年 11 月

OLE コントロールは、ほかのアプリケーションにインターフェイスを公開できます。これらのインターフェイスは、コンテナからそのコントロールにアクセスするときだけ使用できます。OLE コントロールがほかの OLE オブジェクトの外部インターフェイスにアクセスするときは、コネクション ポイントが確立される必要があります。このコネクション ポイントは、イベント マップや通知関数などの外部ディスパッチ マップへのアクセスなど、コントロールから外部に向かってのアクセスを可能にします。

Microsoft Foundation Class ライブラリには、コネクション ポイントをサポートするプログラミング モデルが用意されています。このモデルでは、OLE コントロール用のインターフェイスやコネクション ポイントを指定するために "コネクション マップ" を使用します。コネクション マップには、コネクション ポイントごとに 1 つのマクロがあります。コネクション マップの詳細については、CConnectionPoint クラスの説明を参照してください。

通常、コントロールは 2 つのコネクション ポイントだけをサポートします。1 つはイベント通知に対してのコネクション ポイントで、もう 1 つはプロパティ通知に対してのコネクション ポイントです。これらは COleControl 基本クラスによって実装されます。コントロールの記述者が追加作業する必要はありません。クラスに追加のコネクション ポイントを実装するときは、手作業で追加する必要があります。コネクション マップとコネクション ポイントをサポートするため、MFC には次のマクロが用意されています。

コネクション マップの宣言と境界設定

BEGIN_CONNECTION_PART

追加のコネクション ポイントを実装する埋め込みクラスを宣言します。クラスの宣言の中で使用する必要があります。

END_CONNECTION_PART

コネクション ポイントの宣言を終了します。クラスの宣言の中で使用する必要があります。

CONNECTION_IID

コントロールのコネクション ポイントのインターフェイス ID を指定します。

DECLARE_CONNECTION_MAP

コネクション マップがクラスで使用されることを宣言します。クラスの宣言の中で使用する必要があります。

BEGIN_CONNECTION_MAP

コネクション マップの定義を開始します。クラスの実装の中で使用する必要があります。

END_CONNECTION_MAP

コネクション マップの定義を終了します。クラスの実装の中で使用する必要があります。

CONNECTION_PART

コントロールのコネクション マップでコネクション ポイントを指定します。

コネクション ポイントを使用して接続の確立および切断のシンクを補助する関数を次に示します。

コネクション ポイントの初期化および終了

AfxConnectionAdvise

ソースとシンクとの間の接続を確立します。

AfxConnectionUnadvise

ソースとシンクとの間の接続を切断します。

参照

概念

MFC マクロとグローバル