Registermacro's

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 nuttige typebibliotheek- en registerfaciliteiten.

Naam Description
_ATL_STATIC_REGISTRY Geeft aan dat u wilt dat de registratiecode voor uw object zich in het object bevindt om een afhankelijkheid van ATL.DLL te voorkomen.
DECLARE_LIBID Biedt een manier voor ATL om de libid van de typebibliotheek te verkrijgen.
DECLARE_NO_REGISTRY Vermijdt standaard ATL-registratie.
DECLARE_REGISTRY Hiermee wordt de vermelding van het hoofdobject in het systeemregister ingevoerd of verwijderd.
DECLARE_REGISTRY_APPID_RESOURCEID Hiermee geeft u de informatie op die nodig is om de appid automatisch te registreren.
DECLARE_REGISTRY_RESOURCE Hiermee wordt de benoemde resource gevonden en wordt het registerscript erin uitgevoerd.
DECLARE_REGISTRY_RESOURCEID Hiermee wordt de resource gevonden die is geïdentificeerd door een id-nummer en wordt het registerscript erin uitgevoerd.

Requirements

Koptekst: atlcom.h

_ATL_STATIC_REGISTRY

Een symbool dat aangeeft dat de registratiecode voor uw object in het object moet staan om een afhankelijkheid van ATL.DLL te voorkomen.

#define _ATL_STATIC_REGISTRY

Opmerkingen

Wanneer u ATL_STATIC_REGISTRY definieert, moet u de volgende code gebruiken:

#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif

DECLARE_LIBID

Biedt een manier voor ATL om de libid van de typebibliotheek te verkrijgen.

DECLARE_LIBID( libid )

Parameterwaarden

libid
De GUID van het typebibliotheek.

Opmerkingen

Gebruik DECLARE_LIBID in een CAtlModuleT-afgeleide klasse.

Example

Niet-toegeschreven, door de wizard gegenereerde ATL-projecten hebben een voorbeeld van het gebruik van deze macro.

DECLARE_NO_REGISTRY

Gebruik DECLARE_NO_REGISTRY als u standaard ATL-registratie wilt voorkomen voor de klasse waarin deze macro wordt weergegeven.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Hiermee voert u de standaardklasseregistratie in het systeemregister in of verwijdert u deze uit het systeemregister.

DECLARE_REGISTRY(
    class,
    pid,
    vpid,
    nid,
    flags )

Parameterwaarden

klasse
[in] Opgenomen voor compatibiliteit met eerdere versies.

Pid
[in] Een LPCTSTR die een versiespecifieke programma-id is.

vpid
[in] Een LPCTSTR die een versie-onafhankelijke programma-id is.

Nid
[in] Een UINT die een index is van de resourcereeks in het register die moet worden gebruikt als de beschrijving van het programma.

flags
[in] Een DWORD met het threadingmodel van het programma in het register. Moet een van de volgende waarden zijn: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH of AUTPRXFLAG.

Opmerkingen

De standaardregistratie bestaat uit het CLSID-, programma-id, versie-onafhankelijke programma-id, beschrijvingstekenreeks en threadmodel.

Wanneer u een object of besturingselement maakt met de wizard ATL Klasse toevoegen, implementeert de wizard automatisch registerondersteuning op basis van scripts en voegt de DECLARE_REGISTRY_RESOURCEID macro toe aan uw bestanden. Als u geen ondersteuning voor het register op basis van scripts wilt, moet u deze macro vervangen door DECLARE_REGISTRY. DECLARE_REGISTRY voegt alleen de vijf hierboven beschreven basissleutels in het register in. U moet handmatig code schrijven om andere sleutels in het register in te voegen.

DECLARE_REGISTRY_APPID_RESOURCEID

Hiermee geeft u de informatie op die nodig is om de appid automatisch te registreren.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Parameterwaarden

verblijf
De resource-id van het rgs-bestand met informatie over de appid.

appid
Een GUID.

Opmerkingen

Gebruik DECLARE_REGISTRY_APPID_RESOURCEID in een CAtlModuleT-afgeleide klasse.

Example

Klassen die zijn toegevoegd aan ATL-projecten met de wizard Klassecode toevoegen, hebben een voorbeeld van het gebruik van deze macro.

DECLARE_REGISTRY_RESOURCE

Hiermee haalt u de benoemde resource op die het registerbestand bevat en voert u het script uit om objecten in het systeemregister in te voeren of uit het systeemregister te verwijderen.

DECLARE_REGISTRY_RESOURCE( x )

Parameterwaarden

x
[in] Tekenreeks-id van uw resource.

Opmerkingen

Wanneer u een object of besturingselement maakt met behulp van de wizard ATL Project, implementeert de wizard automatisch registerondersteuning op basis van scripts en voegt u de DECLARE_REGISTRY_RESOURCEID macro, die vergelijkbaar is met DECLARE_REGISTRY_RESOURCE, toe aan uw bestanden.

U kunt statisch verbinding maken met het ATL-registeronderdeel (registrar) voor geoptimaliseerde registertoegang. Als u statisch verbinding wilt maken met de registrarcode, voegt u de volgende regel toe aan uw pch.h-bestand (stdafx.h in Visual Studio 2017 en eerder):

#define _ATL_STATIC_REGISTRY

Als u wilt dat ATL vervangingswaarden tijdens runtime vervangt, geeft u de DECLARE_REGISTRY_RESOURCE of DECLARE_REGISTRY_RESOURCEID macro niet op. Maak in plaats daarvan een matrix met _ATL_REGMAP_ENTRIES structuren, waarbij elke vermelding een tijdelijke aanduiding voor variabelen bevat die is gekoppeld aan een waarde om de tijdelijke aanduiding tijdens runtime te vervangen. Roep vervolgens CAtlModule::UpdateRegistryFromResourceD of CAtlModule::UpdateRegistryFromResourceS aan, waarbij de matrix wordt doorgegeven. Hiermee worden alle vervangende waarden in de _ATL_REGMAP_ENTRIES structuren toegevoegd aan de vervangingskaart van de registrar.

Zie het artikel The ATL Registry Component (Registrar) voor meer informatie over vervangbare parameters en scripting.

DECLARE_REGISTRY_RESOURCEID

Hetzelfde als DECLARE_REGISTRY_RESOURCE , behalve dat er een door de wizard gegenereerde UINT wordt gebruikt om de resource te identificeren, in plaats van een tekenreeksnaam.

DECLARE_REGISTRY_RESOURCEID( x )

Parameterwaarden

x
[in] Door de wizard gegenereerde id van uw resource.

Opmerkingen

Wanneer u een object of besturingselement maakt met de wizard ATL Project, implementeert de wizard automatisch registerondersteuning op basis van scripts en voegt u de DECLARE_REGISTRY_RESOURCEID macro toe aan uw bestanden.

U kunt statisch verbinding maken met het ATL-registeronderdeel (registrar) voor geoptimaliseerde registertoegang. Als u statisch verbinding wilt maken met de registrarcode, voegt u de volgende regel toe aan uw stdafx.h-bestand (pch.h in Visual Studio 2019 en hoger):

#define _ATL_STATIC_REGISTRY

Als u wilt dat ATL vervangingswaarden tijdens runtime vervangt, geeft u de DECLARE_REGISTRY_RESOURCE of DECLARE_REGISTRY_RESOURCEID macro niet op. Maak in plaats daarvan een matrix met _ATL_REGMAP_ENTRIES structuren, waarbij elke vermelding een tijdelijke aanduiding voor variabelen bevat die is gekoppeld aan een waarde om de tijdelijke aanduiding tijdens runtime te vervangen. Roep vervolgens CAtlModule::UpdateRegistryFromResourceD of CAtlModule::UpdateRegistryFromResourceS aan, waarbij de matrix wordt doorgegeven. Hiermee worden alle vervangende waarden in de _ATL_REGMAP_ENTRIES structuren toegevoegd aan de vervangingskaart van de registrar.

Zie het artikel The ATL Registry Component (Registrar) voor meer informatie over vervangbare parameters en scripting.

Zie ook

Macro's