Sdílet prostřednictvím


Makra map objektů

Tato makra definují mapy objektů a položky.

Název Popis
DECLARE_OBJECT_DESCRIPTION Umožňuje zadat textový popis objektu třídy, který bude zadán do mapy objektu.
OBJECT_ENTRY_AUTO Zadá objekt ATL do mapy objektů, aktualizuje registr a vytvoří instanci objektu.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Umožňuje určit, že objekt by měl být registrován a inicializován, ale neměl by být externě creatable prostřednictvím CoCreateInstance.

Požadavky

Hlavička: atlcom.h

DECLARE_OBJECT_DESCRIPTION

Umožňuje zadat textový popis objektu třídy.

DECLARE_OBJECT_DESCRIPTION( x )

Parametry

x
[v] Popis objektu třídy.

Poznámky

AtL zadá tento popis do mapy objektů prostřednictvím OBJECT_ENTRY_AUTO makra.

DECLARE_OBJECT_DESCRIPTION implementuje GetObjectDescription funkci, kterou můžete použít k přepsání CComCoClass::GetObjectDescription metoda.

Funkce GetObjectDescription je volána pomocí IComponentRegistrar::GetComponents. IComponentRegistrar je rozhraní automation, které umožňuje zaregistrovat a zrušit registraci jednotlivých komponent v knihovně DLL. Když vytvoříte objekt registrátora komponent pomocí Průvodce projektem ATL, průvodce automaticky implementuje IComponentRegistrar rozhraní. IComponentRegistrar obvykle používá Microsoft Transaction Server.

Další informace o Průvodci projektem ATL naleznete v článku Vytvoření projektu ATL.

Příklad

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

Zadá objekt ATL do mapy objektů, aktualizuje registr a vytvoří instanci objektu.

OBJECT_ENTRY_AUTO( clsid, class )

Parametry

clsid
[v] CLSID třídy COM implementované třídou C++ pojmenovanou třídou.

class
[v] Název třídy C++ implementované třídy COM reprezentované clsid.

Poznámky

Makra pro zadávání objektů jsou v projektu umístěna v globálním oboru, aby poskytovala podporu pro registraci, inicializaci a vytvoření třídy.

OBJECT_ENTRY_AUTO zadá ukazatele na funkce třídy tvůrce a funkce třídy tvůrce třídy CreateInstance pro tento objekt do automaticky generované mapy objektů ATL. Při CAtlComModule::RegisterServer je volána, aktualizuje systémový registr pro každý objekt v mapě objektu.

Následující tabulka popisuje, jak se informace přidané do mapy objektu získávají z třídy zadané jako druhý parametr tohoto makra.

Informace pro Získáno z
Registrace modelu COM Makra registru
Vytváření objektů pro vytváření tříd Makra objektu pro vytváření tříd
Vytvoření instance Agregační makra
Registrace kategorií součástí Makra kategorií
Inicializace a vyčištění na úrovni třídy ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Umožňuje určit, že objekt by měl být registrován a inicializován, ale neměl by být externě creatable prostřednictvím CoCreateInstance.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Parametry

clsid
[v] CLSID třídy COM implementované třídou C++ pojmenovanou třídou.

class
[v] Název třídy C++ implementované třídy COM reprezentované clsid.

Poznámky

Makra pro zadávání objektů jsou v projektu umístěna v globálním oboru, aby poskytovala podporu pro registraci, inicializaci a vytvoření třídy.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO umožňuje určit, že objekt by měl být registrován a inicializován (viz OBJECT_ENTRY_AUTO další informace), ale neměl by být creatable via CoCreateInstance.

Viz také

Makra