コントロールのプロパティ
ActiveX コントロール テクノロジには、コントロール自体によって定義および実装されるプロパティに加えて、以下も含まれます。
-
アンビエント プロパティ
-
これらは、コンテナーに埋め込まれているすべてのコントロールに適用される環境値を提供するために、コントロール クライアント サイトを介してコンテナーによって公開されます。 たとえば、コンテナーでは、コントロールで使用できる既定の背景色または既定のフォントを指定できます。 アンビエント プロパティは、コンテナーのサイト オブジェクトに実装された IDispatch を介して公開されます。 コンテナーは、アンビエント プロパティのいずれかが値を変更すると、コントロールの IOleControl::OnAmbientPropertyChange メソッドを呼び出します。 これに対して、コントロールは、応答で独自の内部状態またはビジュアル状態を更新する必要がある場合があります。 コンテナーは、DISPID パラメーターで変更されたアンビエント プロパティを示すか、複数のアンビエント プロパティが変更されたことを示すDISPID_UNKNOWNを渡すことができます。
-
拡張プロパティ
-
これらは実際にはコンテナーによって実装され、コンテナーに含まれるコントロールをラップして、ネイティブ コントロールプロパティのように表示されるコンテナー管理プロパティを提供します。 コンテナーはコントロールを集計し、拡張プロパティを追加してコントロールのプロパティを補完またはオーバーライドできます。 集計されたオブジェクトは、拡張コントロールと呼ばれます。 コンテナーでは、拡張コントロールはコントロール自体として表示され、拡張プロパティはコントロールによって公開されているように見えます。 コンテナーは、クライアント サイト メソッド IOleControlSite::GetExtendedControl を使用して拡張コントロールをサポートします。 GetExtendedControl メソッドを使用すると、コンテナーでこの機能がサポートされている場合、コントロールはサイト内を移動して、コンテナーによって提供される拡張コントロール オブジェクトに移動できます。 コンテナーでは、コントロールが通常 ISpecifyPropertyPages で指定するページに加えて、拡張コントロールのプロパティ ページを表示することもできます。 このため、コントロール自体がプロパティ フレームを表示する前に、コントロールがコンテナーにプロパティ フレームを表示するように要求する必要があります。 コントロールは IOleControlSite::ShowPropertyFrame を呼び出してこれを行います。 コンテナーがこの関数を実装する場合は、プロパティ フレーム自体が表示されます。メソッドがエラーを返す場合、コントロールはプロパティ フレームを表示できます。
詳細については、次のトピックを参照してください。
- 標準のプロパティ
- 標準イベント オブジェクト
- 標準の図オブジェクト
関連トピック
-
制御メソッド