Condividi tramite


Macro della mappa oggetti

Queste macro definiscono le mappe e le voci degli oggetti.

Nome Descrizione
DECLARE_OBJECT_DESCRIPTION Consente di specificare la descrizione del testo di un oggetto classe, che verrà immessa nella mappa degli oggetti.
OBJECT_ENTRY_AUTO Immette un oggetto ATL nella mappa oggetti, aggiorna il Registro di sistema e crea un'istanza dell'oggetto .
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Consente di specificare che l'oggetto deve essere registrato e inizializzato, ma non deve essere creabile esternamente tramite CoCreateInstance.

Requisiti

Intestazione: atlcom.h

DECLARE_OBJECT_DESCRIPTION

Consente di specificare una descrizione di testo per l'oggetto classe.

DECLARE_OBJECT_DESCRIPTION( x )

Parametri

x
[in] Descrizione dell'oggetto classe.

Osservazioni:

ATL immette questa descrizione nella mappa oggetti tramite la macro OBJECT_ENTRY_AUTO .

DECLARE_OBJECT_DESCRIPTION implementa una GetObjectDescription funzione, che è possibile usare per eseguire l'override del metodo CComCoClass::GetObjectDescription .

La GetObjectDescription funzione viene chiamata da IComponentRegistrar::GetComponents. IComponentRegistrar è un'interfaccia di automazione che consente di registrare e annullare la registrazione di singoli componenti in una DLL. Quando si crea un oggetto Registrar del componente con la Creazione guidata progetto ATL, la procedura guidata implementerà automaticamente l'interfaccia IComponentRegistrar . IComponentRegistrar viene in genere utilizzato da Microsoft Transaction Server.

Per altre informazioni sulla Creazione guidata progetto ATL, vedere l'articolo Creazione di un progetto ATL.

Esempio

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

Immette un oggetto ATL nella mappa oggetti, aggiorna il Registro di sistema e crea un'istanza dell'oggetto .

OBJECT_ENTRY_AUTO( clsid, class )

Parametri

clsid
[in] CLSID di una classe COM implementata dalla classe C++ denominata .

class
[in] Nome della classe C++ che implementa la classe COM rappresentata da clsid.

Osservazioni:

Le macro di voci di oggetto vengono inserite in ambito globale nel progetto per fornire supporto per la registrazione, l'inizializzazione e la creazione di una classe.

OBJECT_ENTRY_AUTO immette i puntatori a funzione della classe creatore e le funzioni della classe CreateInstance creator di class factory per questo oggetto nella mappa oggetti ATL generata automaticamente. Quando viene chiamato CAtlComModule::RegisterServer , aggiorna il Registro di sistema per ogni oggetto nella mappa degli oggetti.

Nella tabella seguente viene descritto il modo in cui le informazioni aggiunte alla mappa oggetti vengono ottenute dalla classe specificata come secondo parametro di questa macro.

Informazioni per Ottenuto da
Registrazione COM Macro del Registro di sistema
Creazione della factory di classi Macro di Class Factory
Creazione di istanze Macro di aggregazione
Registrazione della categoria di componenti Macro di categoria
Inizializzazione e pulizia a livello di classe ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Consente di specificare che l'oggetto deve essere registrato e inizializzato, ma non deve essere creabile esternamente tramite CoCreateInstance.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Parametri

clsid
[in] CLSID di una classe COM implementata dalla classe C++ denominata .

class
[in] Nome della classe C++ che implementa la classe COM rappresentata da clsid.

Osservazioni:

Le macro di voci di oggetto vengono inserite in ambito globale nel progetto per fornire supporto per la registrazione, l'inizializzazione e la creazione di una classe.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO consente di specificare che un oggetto deve essere registrato e inizializzato (vedere OBJECT_ENTRY_AUTO per altre informazioni), ma non deve essere creato tramite CoCreateInstance.

Vedi anche

Macro