Udostępnij za pośrednictwem


Makra mapy obiektów

Te makra definiują mapy obiektów i wpisy.

Nazwa/nazwisko opis
DECLARE_OBJECT_DESCRIPTION Umożliwia określenie opisu tekstu obiektu klasy, który zostanie wprowadzony do mapy obiektów.
OBJECT_ENTRY_AUTO Wprowadza obiekt ATL do mapy obiektów, aktualizuje rejestr i tworzy wystąpienie obiektu.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Umożliwia określenie, że obiekt powinien być zarejestrowany i zainicjowany, ale nie powinien być zewnętrznie creatable za pośrednictwem .CoCreateInstance

Wymagania

Nagłówek: atlcom.h

DECLARE_OBJECT_DESCRIPTION

Umożliwia określenie opisu tekstu dla obiektu klasy.

DECLARE_OBJECT_DESCRIPTION( x )

Parametry

x
[in] Opis obiektu klasy.

Uwagi

ATL wprowadza ten opis do mapy obiektów za pośrednictwem makra OBJECT_ENTRY_AUTO .

DECLARE_OBJECT_DESCRIPTION implementuje GetObjectDescription funkcję, której można użyć do zastąpienia metody CComCoClass::GetObjectDescription .

Funkcja jest wywoływana GetObjectDescription przez IComponentRegistrar::GetComponentsfunkcję . IComponentRegistrar to interfejs automatyzacji, który umożliwia rejestrowanie i wyrejestrowywanie poszczególnych składników w dll. Po utworzeniu obiektu rejestratora składników za pomocą Kreatora projektu ATL kreator automatycznie zaimplementuje IComponentRegistrar interfejs. IComponentRegistrar jest zwykle używany przez serwer transakcji firmy Microsoft.

Aby uzyskać więcej informacji na temat Kreatora projektu ATL, zobacz artykuł Tworzenie projektu ATL.

Przykład

class ATL_NO_VTABLE CMyDescribedClass :
   public CComObjectRoot,
   public CComCoClass<CMyDescribedClass, &CLSID_MyDescribedClass>
{
public:
   CMyDescribedClass()
   {
   }

   // Override CComCoClass::GetObjectDescription
   DECLARE_OBJECT_DESCRIPTION("My Described Object 1.0")
};

OBJECT_ENTRY_AUTO

Wprowadza obiekt ATL do mapy obiektów, aktualizuje rejestr i tworzy wystąpienie obiektu.

OBJECT_ENTRY_AUTO( clsid, class )

Parametry

clsid
[in] CLSID klasy COM zaimplementowanej przez klasę C++ o nazwie class.

class
[in] Nazwa klasy C++ implementowania klasy COM reprezentowanej przez clsid.

Uwagi

Makra wprowadzania obiektów są umieszczane w zakresie globalnym w projekcie w celu zapewnienia obsługi rejestracji, inicjowania i tworzenia klasy.

OBJECT_ENTRY_AUTO wprowadza wskaźniki funkcji klasy twórcy i klasy twórców klasy CreateInstance fabryki dla tego obiektu do automatycznie generowanej mapy obiektów ATL. Gdy obiekt CAtlComModule::RegisterServer jest wywoływany, aktualizuje rejestr systemowy dla każdego obiektu na mapie obiektów.

W poniższej tabeli opisano, w jaki sposób informacje dodane do mapy obiektów są uzyskiwane z klasy podanej jako drugi parametr do tego makra.

Informacje dotyczące Uzyskane z
Rejestracja MODELU COM Makra rejestru
Tworzenie fabryki klas Makra fabryki klas
Tworzenie wystąpienia Makra agregacji
Rejestracja kategorii składników Makra kategorii
Inicjowanie i oczyszczanie na poziomie klasy ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Umożliwia określenie, że obiekt powinien być zarejestrowany i zainicjowany, ale nie powinien być zewnętrznie creatable za pośrednictwem .CoCreateInstance

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Parametry

clsid
[in] CLSID klasy COM zaimplementowanej przez klasę C++ o nazwie class.

class
[in] Nazwa klasy C++ implementowania klasy COM reprezentowanej przez clsid.

Uwagi

Makra wprowadzania obiektów są umieszczane w zakresie globalnym w projekcie w celu zapewnienia obsługi rejestracji, inicjowania i tworzenia klasy.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO pozwala określić, że obiekt powinien być zarejestrowany i zainicjowany (zobacz OBJECT_ENTRY_AUTO, aby uzyskać więcej informacji), ale nie powinien być creatable za pośrednictwem .CoCreateInstance

Zobacz też

Makra