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::GetComponents
funkcję . 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