ActiveXコントロールのアーキテクチャ
ActiveXコントロールテクノロジは、OLEの多くの下位レベルのオブジェクトとインターフェイスの基盤に基づいて構築されています。 コントロールで使用できる正確なインターフェイスは、その機能によって異なります。 このセクションでは、コントロールが提供する機能について詳しく説明します。
ActiveXコントロールは、アプリケーションでユーザーインターフェイスを作成するための構成要素を提供するために使用されます。 たとえば、クリックされたときにコンテナーアプリケーションで何らかのアクションを開始するボタンは、単純なコントロールです。 これらのユーザーインターフェイスの構成要素を提供するには、次の側面が関係します。
- コントロールは、クライアント内のいくつかのユーザーインターフェイスアクティビティをサポートするために、コンテナークライアント内に埋め込むことができます。 そのため、コントロールは、コンテナー内に埋め込まれている場合にそれ自体を視覚的に表現し、その状態 (たとえば、プロパティ値やコンテナー内の位置) を保存する方法を提供する必要があります。 クライアントは、オブジェクトが埋め込まれたコンテナーであることをサポートする必要があります。
- キーボードまたはマウスを使用してコントロールをアクティブにすると、エンドユーザーはクライアントアプリケーションで何らかのアクションを開始します。 そのため、コントロールはキーボードアクティビティに応答する必要があり、そのアクティビティのコンテナーに通知し、クライアントでイベントをトリガーできるように、クライアントと通信できる必要があります。
- クライアントは、通常、エンドユーザーがコントロールのプロパティとメソッドによって提供されるアクションを開始できるプログラミング言語も提供します。 そのため、コントロールはオートメーションと、デザイン時と実行時の機能のセットをサポートする必要があります。
ユーザーインターフェイスの構成要素を提供する役割の結果として、コントロールは通常、OLEテクノロジを使用して次の領域の機能をサポートします。
-
プロパティとメソッド
-
すべてのOLEオブジェクトと同様に、コントロールは、プロパティとメソッドを使用して一連の受信インターフェイスを通じて、その機能の多くを提供できます。 コンテナーは、追加のアンビエントプロパティを指定できます。また、集計を使用したコントロールのプロパティの拡張をサポートできます。 これらの機能は、OLEオートメーション、プロパティページ、接続可能なオブジェクト、およびActiveXコントロールテクノロジに残ります。
-
イベント
-
プロパティとメソッドを提供するだけでなく、ActiveXコントロールは、クライアントにイベントを通知するための送信インターフェイスを提供することもできます。 クライアントは、これらのイベントの処理をサポートする必要があります。 これらの機能は、OLEオートメーションと接続可能なオブジェクトを使用します。
-
ビジュアル表現
-
コントロールは、コンテナー内での配置と表示をサポートできます。 コンテナーは、コントロールを配置し、そのサイズを決定します。 これらの機能では、OLEドラッグアンドドロップテクノロジなどの複合ドキュメントテクノロジを使用します。
-
キーボード処理
-
コントロールは、エンドユーザーがコントロールによって実行されるアクションを開始できるように、キーボードアクセラレータに応答できます。 コンテナーは、すべての埋め込みコントロールのキーボードアクティビティを管理します。 これらの機能は、コントロールと複合ドキュメントテクノロジを使用します。
-
永続化
-
コントロールは、その状態を保存できます。 クライアントは、埋め込みコントロールの永続性を管理します。 これらの機能は、構造化ストレージとオブジェクトの永続化テクノロジを使用します。
-
登録とライセンス
-
通常、コントロールは自己登録をサポートし、インスタンス化されるときに一連のレジストリエントリを作成します。 コントロールは、承認されていない使用を防ぐためにライセンスを取得することもできます。
これらの機能のほとんどは、コントロールとそのクライアントコンテナーの両方に関係します。
関連トピック