Makra kategorii

Te makra definiują mapy kategorii.

Macro 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
Sejf na potrzeby skryptów CATID_Sejf ForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Sejf na potrzeby inicjowania CATID_Sejf ForInitializing {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
Sejf na potrzeby skryptów CATID_Sejf ForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Sejf na potrzeby inicjowania CATID_Sejf ForInitializing {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()

Zobacz też

Makra