Share via


Macro's voor objecttoewijzing

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze macro's definiëren objecttoewijzingen en -items.

Naam Description
DECLARE_OBJECT_DESCRIPTION Hiermee kunt u de tekstbeschrijving van een klasseobject opgeven, die in de objecttoewijzing wordt ingevoerd.
OBJECT_ENTRY_AUTO Hiermee voert u een ATL-object in de objecttoewijzing in, werkt u het register bij en maakt u een exemplaar van het object.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Hiermee kunt u opgeven dat het object moet worden geregistreerd en geïnitialiseerd, maar het mag niet extern worden gemaakt via CoCreateInstance.

Requirements

Koptekst: atlcom.h

DECLARE_OBJECT_DESCRIPTION

Hiermee kunt u een tekstbeschrijving opgeven voor uw klasseobject.

DECLARE_OBJECT_DESCRIPTION( x )

Parameterwaarden

x
[in] De beschrijving van het klasseobject.

Opmerkingen

ATL voert deze beschrijving in de objecttoewijzing in via de OBJECT_ENTRY_AUTO macro.

DECLARE_OBJECT_DESCRIPTION implementeert een GetObjectDescription functie, die u kunt gebruiken om de methode CComCoClass::GetObjectDescription te overschrijven .

De GetObjectDescription functie wordt aangeroepen door IComponentRegistrar::GetComponents. IComponentRegistrar is een Automation-interface waarmee u afzonderlijke onderdelen in een DLL kunt registreren en de registratie ervan ongedaan kunt maken. Wanneer u een componentregistrarobject maakt met de wizard ATL-project, wordt de interface automatisch geïmplementeerd door de IComponentRegistrar wizard. IComponentRegistrar wordt doorgaans gebruikt door Microsoft Transaction Server.

Zie het artikel Een ATL-project maken voor meer informatie over de wizard ATL-project.

Example

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

Hiermee voert u een ATL-object in de objecttoewijzing in, werkt u het register bij en maakt u een exemplaar van het object.

OBJECT_ENTRY_AUTO( clsid, class )

Parameterwaarden

clsid
[in] De CLSID van een COM-klasse die is geïmplementeerd door de C++-klasse met de naam klasse.

klasse
[in] De naam van de C++-klasse die de COM-klasse implementeert die wordt vertegenwoordigd door clsid.

Opmerkingen

Objectinvoermacro's worden in het project in het globale bereik geplaatst om ondersteuning te bieden voor de registratie, initialisatie en het maken van een klasse.

OBJECT_ENTRY_AUTO de functieaanwijzers van de klasse Creator en class-factory-klasse CreateInstance voor dit object invoert in de automatisch gegenereerde ATL-objecttoewijzing. Wanneer CAtlComModule::RegisterServer wordt aangeroepen, wordt het systeemregister bijgewerkt voor elk object in de objecttoewijzing.

In de onderstaande tabel wordt beschreven hoe de informatie die aan de objecttoewijzing is toegevoegd, wordt verkregen uit de klasse die is opgegeven als de tweede parameter voor deze macro.

Informatie voor Verkregen van
COM-registratie Registermacro's
Klasfactory maken Klasfactorymacro's
Het aanmaken van een instantie Aggregatiemacro's
Registratie van onderdeelcategorie Categoriemacro's
Initialisatie en opschoning op klasseniveau ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Hiermee kunt u opgeven dat het object moet worden geregistreerd en geïnitialiseerd, maar het mag niet extern worden gemaakt via CoCreateInstance.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Parameterwaarden

clsid
[in] De CLSID van een COM-klasse die is geïmplementeerd door de C++-klasse met de naam klasse.

klasse
[in] De naam van de C++-klasse die de COM-klasse implementeert die wordt vertegenwoordigd door clsid.

Opmerkingen

Objectinvoermacro's worden in het project in het globale bereik geplaatst om ondersteuning te bieden voor de registratie, initialisatie en het maken van een klasse.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO kunt u opgeven dat een object moet worden geregistreerd en geïnitialiseerd (zie OBJECT_ENTRY_AUTO voor meer informatie), maar het mag niet worden gemaakt via CoCreateInstance.

Zie ook

Macro's