Udostępnij przez


Kategorie składników i sposób ich działania

Kategorie składników identyfikują te obszary funkcjonalności, które składnik oprogramowania obsługuje i wymaga, wpis rejestru jest używany dla każdej kategorii lub zidentyfikowanego obszaru funkcjonalności. Każda kategoria składników jest identyfikowana przez globalnie unikatowy identyfikator (GUID). Kiedy kontrolka jest instalowana, rejestruje się w rejestrze systemowym jako kontrolka, używając identyfikatora kategorii składników dla kontroli. Zobacz Self Registration for Controls. W ramach samodzielnej rejestracji kontrolka będzie również rejestrować te kategorie składników, które implementuje, oraz te, które wymagają wsparcia kontenera do skutecznego hostowania kontrolki.

Gdy kontener sterowania oferuje użytkownikowi kontrolki do wstawiania, umożliwia wyłącznie wybór i zainicjowanie tych kontrolek, które będą mogły odpowiednio funkcjonować w tym środowisku. Jeśli na przykład kontener sterowania nie obsługuje powiązania danych, kontener nie pozwoli użytkownikowi wybrać i zainstancjować tych kontrolek, które mają wpis w rejestrze wskazujący, że wymagają kategorii komponentu do powiązania danych. Dostępne jest typowe okno dialogowe do wstawiania kontrolek oraz API do zarządzania wpisami rejestru.

Kategorie składników nie są skumulowane lub wykluczane. Kontrolka może wymagać dowolnej kombinacji kategorii składników do działania. Oczekuje się, że kontrolka, która nie ma wymaganych wpisów dla kategorii składników, będzie mogła działać w żadnym kontenerze sterowania i nie wymaga żadnej konkretnej funkcjonalności kontenera sterowania do działania.

Wymieniono tutaj następujące kategorie składników; gdzie to konieczne, mogą być dostępne bardziej szczegółowe specyfikacje tych kategorii.

Nie jest to ostateczna lista kategorii; w przyszłości prawdopodobnie zostaną zdefiniowane kolejne kategorie, ponieważ zidentyfikowano nowe wymagania. Lista up-to-date kategorii składników jest dostępna od firmy Microsoft; ta lista odzwierciedla te kategorie składników, które zostały zidentyfikowane przez firmę Microsoft, oraz inne kategorie, o których dostawcy poinformowali firmę Microsoft.

Należy pamiętać, że kontrole powinny próbować działać w jak największej liczbie środowisk. Jeśli jest to możliwe, kontrolka powinna obniżyć jego funkcjonalność w przypadku umieszczania w kontenerze, który nie obsługuje niektórych interfejsów. Celem kategorii składników jest zapobieganie sytuacji, w której kontrolka jest umieszczana w środowisku, które jest nieodpowiednie, a kontrolka nie może osiągnąć żądanego zadania. Ogólnie rzecz biorąc, kontrolka powinna ulec pogorszeniu, gdy interfejsy nie są obecne, kontrolka może poinformować użytkownika z polem komunikatu, że niektóre funkcje nie są dostępne lub wyraźnie udokumentować funkcjonalność wymaganą przez kontener sterowania w celu uzyskania optymalnej wydajności.

Zwróć uwagę, że starsze kontrolki i kontenery nie korzystają z kategorii komponentów, a zamiast tego polegają na obecności słowa kluczowego 'kontrolka' w rejestrze dla danej kontrolki. Aby kontrolka została rozpoznana przez starsze kontenery, należy zarejestrować słowo kluczowe "kontrolka" w rejestrze. Deweloperzy kontrolki powinni sprawdzić, czy kontrolka może być pomyślnie hostowana w takich kontenerach przed jej zarejestrowaniem. Kontenery korzystające z kategorii składników mogą pomyślnie używać ich do hostowania starszych kontrolek, ponieważ biblioteka DLL kategorii składników obsługuje mapowanie, istnieje oddzielna kategoria dla starszych kontrolek CATID_ControlV1, dzięki czemu kontener może opcjonalnie je wykluczyć w razie potrzeby.

Ponieważ kategorie składników są identyfikowane za pomocą identyfikatorów GUID, możliwe jest, aby kontenery oferujące określoną funkcjonalność miały własne identyfikatory kategorii, generowane przy użyciu narzędzia do tworzenia identyfikatorów GUID. Jednak może to podważyć zaletę interoperacyjności kontrolek i kontenerów, dlatego zaleca się używanie istniejących kategorii składników, gdy tylko jest to możliwe. Dostawcy są zachęcani do wspólnej konsultacji podczas definiowania nowych kategorii składników, aby upewnić się, że spełniają one typowe wymagania platformy handlowej i przestrzegają ducha współdziałania kontrolek ActiveX.

Kategorie Komponentów