Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Komponenty často vyžadují určité funkce z kontejneru a nebudou fungovat s kontejnerem, který neposkytuje podporu. Uživatelské rozhraní by mělo vyfiltrovat komponenty, které vyžadují funkce, které kontejner nepodporuje. K tomu je možné komponenty kategorizovat podle požadovaných funkcí kontejneru.
Příkladem komponent, které vyžadují funkce z kontejneru a nefungují v kontejnerech, které nepodporují tyto funkce, jsou jednoduché ovládací prvky OLE rámce. Kategorizace podle schopností kontejneru se provádí pomocí dalšího klíče registru v rámci klíče CLSID komponenty:
;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...}
Jak je znázorněno v tomto příkladu, komponenta může patřit do kategorií komponent, které označují podporované funkce, a také do kategorií komponent, které označují požadované funkce.
V následujícím příkladu je ovládací prvek tlačítka obecný ovládací prvek OLE, který nepodporuje žádné další funkce. Bude fungovat v libovolném kontejneru ovládacího prvku OLE.
HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories\{...CATID_Control...}
Porovnejte předchozí příklad s dalším příkladem, ve kterém MyDBControl může použít datovou vazbu jazyka Visual Basic, pokud ho kontejner podporuje. Byla však definována tak, aby fungovala v kontejnerech, které nepodporují datové vazby jazyka Visual Basic (například pomocí jiného databázového rozhraní 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...}
Ovládací prvek GroupBox je jednoduchý ovládací prvek rámce. Spoléhá na kontejner, který implementuje rozhraní ISimpleFrameSite a bude fungovat správně pouze v takových kontejnerech:
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...}
Kontejner, který podporuje ovládací prvky vázané na data jazyka Visual Basic, ale nepodporuje jednoduché ovládací prvky rámce, by specifikoval CATID_Control a CATID_VBDatabound do uživatelského rozhraní pro vložení ovládacího prvku. Seznam ovládacích prvků zobrazených uživateli by obsahoval CLSID_Button a CLSID_MyDBControl. CLSID_GroupBox se nezobrazí.
Související témata