Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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.