Makra kategorii
Te makra definiują mapy kategorii.
Makro | opis |
---|---|
BEGIN_CATEGORY_MAP | Oznacza początek mapy kategorii. |
END_CATEGORY_MAP | Oznacza koniec mapy kategorii. |
IMPLEMENTED_CATEGORY | Wskazuje kategorie implementowane przez obiekt COM. |
REQUIRED_CATEGORY | Wskazuje kategorie wymagane przez obiekt COM kontenera. |
Wymagania
Nagłówek: atlcom.h
BEGIN_CATEGORY_MAP
Oznacza początek mapy kategorii.
BEGIN_CATEGORY_MAP(theClass)
Parametry
theClass
[in] Nazwa klasy zawierającej mapę kategorii.
Uwagi
Mapa kategorii służy do określania kategorii składników, które zostaną zaimplementowane przez klasę COM i które kategorie są wymagane z kontenera.
Dodaj wpis IMPLEMENTED_CATEGORY do mapy dla każdej kategorii zaimplementowane przez klasę COM. Dodaj wpis REQUIRED_CATEGORY do mapy dla każdej kategorii, która wymaga implementacji jej klientów. Oznacz koniec mapy za pomocą makra END_CATEGORY_MAP .
Kategorie składników wymienione na mapie zostaną zarejestrowane automatycznie po zarejestrowaniu modułu, jeśli klasa ma skojarzoną OBJECT_ENTRY_AUTO lub OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO.
Uwaga
Usługa ATL używa standardowego menedżera kategorii składników do rejestrowania kategorii składników. Jeśli menedżer nie jest obecny w systemie po zarejestrowaniu modułu, rejestracja zakończy się pomyślnie, ale kategorie składników nie zostaną zarejestrowane dla tej klasy.
Aby uzyskać więcej informacji na temat kategorii składników, zobacz Co to są kategorie składników i jak działają w zestawie Windows SDK.
Przykład
BEGIN_CATEGORY_MAP(CMyCtrl)
IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()
END_CATEGORY_MAP
Oznacza koniec mapy kategorii.
END_CATEGORY_MAP()
Przykład
Zobacz przykład BEGIN_CATEGORY_MAP.
IMPLEMENTED_CATEGORY
Dodaj makro IMPLEMENTED_CATEGORY do mapy kategorii składnika, aby określić, że ma zostać zarejestrowane jako implementowanie kategorii zidentyfikowanej przez parametr catID.
IMPLEMENTED_CATEGORY(catID)
Parametry
catID
[in] Stała lub zmienna CATID przechowując globalnie unikatowy identyfikator (GUID) dla zaimplementowanej kategorii. Adres catID zostanie pobrany i dodany do mapy. Zapoznaj się z poniższą tabelą, aby zapoznać się z wyborem kategorii zapasów.
Uwagi
Kategorie składników wymienione na mapie zostaną zarejestrowane automatycznie po zarejestrowaniu modułu, jeśli klasa ma skojarzone makro OBJECT_ENTRY_AUTO lub OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO .
Klienci mogą używać informacji kategorii zarejestrowanych dla klasy, aby określić jego możliwości i wymagania bez konieczności tworzenia wystąpienia.
Aby uzyskać więcej informacji na temat kategorii składników, zobacz Co to są kategorie składników i jak działają w zestawie Windows SDK.
Wybór kategorii akcji
opis | Symbol | Identyfikator GUID rejestru |
---|---|---|
Bezpieczne do obsługi skryptów | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Bezpieczne do inicjowania | CATID_SafeForInitializing | {7DD95802-9882-11CF-9FA9-00AA006C42C4} |
Proste zawieranie witryn ramek | CATID_SimpleFrameControl | {157083E0-2368-11cf-87B9-00AA006C8166} |
Proste powiązanie danych | CATID_PropertyNotifyControl | {157083E1-2368-11cf-87B9-00AA006C8166} |
Zaawansowane powiązanie danych | CATID_VBDataBound | {157083E2-2368-11cf-87B9-00AA006C8166} |
Kontrolki bez okien | CATID_WindowlessObject | {1D06B600-3AE3-11cf-87B9-00A006C8166} |
Obiekty obsługujące Internet | Aby zapoznać się z przykładową listą, zobacz Internet Aware Objects in the Windows SDK (Obiekty z obsługą internetu w zestawie WINDOWS SDK). |
Przykład
BEGIN_CATEGORY_MAP(CMyCtrl)
IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()
REQUIRED_CATEGORY
Dodaj makro REQUIRED_CATEGORY do mapy kategorii składnika, aby określić, że ma on zostać zarejestrowany jako wymagający kategorii zidentyfikowanej przez parametr catID.
REQUIRED_CATEGORY( catID )
Parametry
catID
[in] Stała CATID lub zmienna przechowując globalnie unikatowy identyfikator (GUID) dla wymaganej kategorii. Adres catID zostanie pobrany i dodany do mapy. Zapoznaj się z poniższą tabelą, aby zapoznać się z wyborem kategorii zapasów.
Uwagi
Kategorie składników wymienione na mapie zostaną zarejestrowane automatycznie po zarejestrowaniu modułu, jeśli klasa ma skojarzone makro OBJECT_ENTRY_AUTO lub OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO .
Klienci mogą używać informacji kategorii zarejestrowanych dla klasy, aby określić jego możliwości i wymagania bez konieczności tworzenia wystąpienia. Na przykład kontrolka może wymagać, aby kontener obsługiwał powiązanie danych. Kontener może sprawdzić, czy ma możliwości niezbędne do hostowania kontrolki, wysyłając zapytanie do menedżera kategorii dla kategorii wymaganych przez tę kontrolkę. Jeśli kontener nie obsługuje wymaganej funkcji, może odmówić hostowania obiektu COM.
Aby uzyskać więcej informacji na temat kategorii składników, w tym przykładowej listy, zobacz Co to są kategorie składników i jak działają w zestawie Windows SDK.
Wybór kategorii akcji
opis | Symbol | Identyfikator GUID rejestru |
---|---|---|
Bezpieczne do obsługi skryptów | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Bezpieczne do inicjowania | CATID_SafeForInitializing | {7DD95802-9882-11CF-9FA9-00AA006C42C4} |
Proste zawieranie witryn ramek | CATID_SimpleFrameControl | {157083E0-2368-11cf-87B9-00AA006C8166} |
Proste powiązanie danych | CATID_PropertyNotifyControl | {157083E1-2368-11cf-87B9-00AA006C8166} |
Zaawansowane powiązanie danych | CATID_VBDataBound | {157083E2-2368-11cf-87B9-00AA006C8166} |
Kontrolki bez okien | CATID_WindowlessObject | {1D06B600-3AE3-11cf-87B9-00A006C8166} |
Obiekty obsługujące Internet | Aby zapoznać się z przykładową listą, zobacz Internet Aware Objects in the Windows SDK (Obiekty z obsługą internetu w zestawie WINDOWS SDK). |
Przykład
BEGIN_CATEGORY_MAP(CMyWindow)
REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()