次の方法で共有


コンテナー機能による分類

多くの場合、コンポーネントにはコンテナーの特定の機能が必要であり、サポートを提供しないコンテナーでは機能しません。 ユーザー インターフェイスは、コンテナーがサポートしていない機能を必要とするコンポーネントを除外する必要があります。 これを実現するために、コンポーネントは必要なコンテナー機能によって分類できます。

コンテナーの機能を必要とし、その機能をサポートしていないコンテナーでは機能しないコンポーネントの例は、単純なフレーム OLE コントロールです。 コンテナー機能による分類は、コンポーネントの CLSID キー内の追加のレジストリ キーによって実現されます。

;The CLSID for "Simple Frame Control" is {123456FF-ABCD-4321-0101-00000000000C}HKEY_CASSES_ROOT\CLSID\{12346FF-ABCD-4321-0101-00000000000C}\Implemented Categories
;The CATID for "Control" is {40FC6ED4-2438-11cf-A3DB-080036F12502} HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Implemented Categories\{40FC6ED4-2438-11cf-A3DB-080036F12502}
;The CATID for simple frame controls is {...CATID_SimpleFrameControl...} HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Implemented Categories\{...CATID_SimpleFrameControl...}
HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Required Categories\{...CATID_SimpleFrameControl...}
 

この例に示すように、コンポーネントは、サポートされている機能を示すコンポーネント カテゴリと、必要な機能を示すコンポーネント カテゴリに属することができます。

次の例では、ボタン コントロールは、追加機能をサポートしない汎用 OLE コントロールです。 任意の OLE コントロール コンテナーで動作します。

HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories\{...CATID_Control...}
 

前の例と、コンテナーでサポートされている場合に MyDBControl で Visual Basic データ バインディングを使用できる次の例を比較します。 ただし、Visual Basic データ バインディングをサポートしていないコンテナー (おそらく別のデータベース API によって) で動作するように定義されています。

HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories\{...CATID_Control...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories\{...CATID_VBDatabound...}
 

GroupBox コントロールは単純なフレーム コントロールです。 ISimpleFrameSite インターフェイスを 実装するコンテナーに依存しており、 このようなコンテナーでのみ正しく機能します。

HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories\{...CATID_Control...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories\{...CATID_SimpleFrame...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Required Categories\{...CATID_SimpleFrame...}
 

Visual Basic データ バインド コントロールをサポートするが、単純なフレーム コントロールをサポートしていないコンテナーでは、CATID_Controlを指定し、挿入コントロールのユーザー インターフェイスにCATID_VBDataboundします。 ユーザーに表示されるコントロールの一覧には、CLSID_ButtonとCLSID_MyDBControlが含まれます。 CLSID_GroupBoxは表示されません。

アイコンとカテゴリの関連付け

コンポーネント機能による分類

既定のクラスと関連付け

コンポーネント カテゴリの定義

コンポーネント カテゴリ マネージャー