Share via


CComModule-klasse

Opmerking

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

Vanaf ATL 7.0 CComModule is afgeschaft: zie ATL-moduleklassen voor meer informatie.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

class CComModule : public _ATL_MODULE

Leden

Openbare methoden

Naam Description
CComModule::GetClassObject Hiermee maakt u een object van een opgegeven CLSID. Alleen voor DLL's.
CComModule::GetModuleInstance Retourneert m_hInst.
CComModule::GetResourceInstance Retourneert m_hInstResource.
CComModule::GetTypeLibInstance Retourneert m_hInstTypeLib.
CComModule::Init Initialiseert gegevensleden.
CComModule::RegisterClassHelper Hiermee voert u de standaardklasseregistratie van een object in het systeemregister in.
CComModule::RegisterClassObjects Registreert het klasseobject. Alleen voor EXE's.
CComModule::RegisterServer Hiermee werkt u het systeemregister voor elk object in de objecttoewijzing bij.
CComModule::RegisterTypeLib Registreert een typebibliotheek.
CComModule::RevokeClassObjects Hiermee wordt het klasseobject ingetrokken. Alleen voor EXE's.
CComModule::Term Releases van gegevensleden.
CComModule::UnregisterClassHelper Hiermee verwijdert u de standaardklasseregistratie van een object uit het systeemregister.
CComModule::UnregisterServer De registratie van elk object in de objecttoewijzing ongedaan maken.
CComModule::UpdateRegistryClass Registreert of de registratie van de standaardklasseregistratie van een object ongedaan maken.
CComModule::UpdateRegistryFromResourceD Voert het script uit dat is opgenomen in een opgegeven resource om een object te registreren of de registratie ervan ongedaan te maken.
CComModule::UpdateRegistryFromResourceS Statisch koppelingen naar het ATL-registeronderdeel. Voert het script uit dat is opgenomen in een opgegeven resource om een object te registreren of de registratie ervan ongedaan te maken.

Publieke dataleden

Naam Description
CComModule::m_csObjMap Zorgt voor gesynchroniseerde toegang tot de objecttoewijzingsgegevens.
CComModule::m_csTypeInfoHolder Zorgt voor gesynchroniseerde toegang tot de gegevens van de typebibliotheek.
CComModule::m_csWindowCreate Zorgt voor gesynchroniseerde toegang tot vensterklasse-informatie en statische gegevens die worden gebruikt tijdens het maken van het venster.
CComModule::m_hInst Bevat de ingang naar het module-exemplaar.
CComModule::m_hInstResource Bevat standaard de ingang naar het module-exemplaar.
CComModule::m_hInstTypeLib Bevat standaard de ingang naar het module-exemplaar.
CComModule::m_pObjMap Verwijst naar de objecttoewijzing die wordt onderhouden door het module-exemplaar.

Opmerkingen

Opmerking

Deze klasse is afgeschaft en de wizards voor het genereren van ATL-code gebruiken nu de afgeleide klassen CAtlAutoThreadModule en CAtlModule . Zie ATL-moduleklassen voor meer informatie. De volgende informatie is bedoeld voor gebruik met toepassingen die zijn gemaakt met oudere versies van ATL. CComModule maakt nog steeds deel uit van ATL voor achterwaartse mogelijkheden.

CComModule implementeert een COM-servermodule, zodat een client toegang heeft tot de onderdelen van de module. CComModule ondersteunt zowel DLL-modules (in verwerking) als EXE-modules (lokaal).

Een CComModule exemplaar gebruikt een objecttoewijzing om een set klasseobjectdefinities te onderhouden. Deze objecttoewijzing wordt geïmplementeerd als een matrix van _ATL_OBJMAP_ENTRY structuren en bevat informatie voor:

  • Objectbeschrijvingen invoeren en verwijderen in het systeemregister.

  • Instantieer objecten via een klassefactory.

  • Communicatie tot stand brengen tussen een client en het hoofdobject in het onderdeel.

  • Levensduurbeheer van klasseobjecten uitvoeren.

Wanneer u de ATL COM AppWizard uitvoert, genereert _Modulede wizard automatisch een globaal exemplaar van CComModule of een klasse die hiervan is afgeleid. Zie het artikel Een ATL-project maken voor meer informatie over de wizard ATL-project.

Naast CComModuleATL biedt ATL CComAutoThreadModule, waarmee een module voor appartementsmodellen voor EXE's en Windows-services wordt geïmplementeerd. Uw module afleiden van CComAutoThreadModule wanneer u objecten in meerdere appartementen wilt maken.

Overnamehiërarchie

_ATL_MODULE

CAtlModule

CAtlModuleT

CComModule

Requirements

Header: atlbase.h

CComModule::GetClassObject

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HRESULT GetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

Parameterwaarden

rclsid
[in] De CLSID van het object dat moet worden gemaakt.

riid
[in] De IID van de aangevraagde interface.

Ppv
[uit] Een aanwijzer naar de interfacepointer die wordt geïdentificeerd door riid. Als het object deze interface niet ondersteunt, is PPV ingesteld op NULL.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Hiermee maakt u een object van de opgegeven CLSID en haalt u een interfaceaanwijzer naar dit object op.

GetClassObject is alleen beschikbaar voor DLL's.

CComModule::GetModuleInstance

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HINSTANCE GetModuleInstance() throw();

Retourwaarde

De HINSTANCE die deze module identificeert.

Opmerkingen

Retourneert het m_hInst gegevenslid.

CComModule::GetResourceInstance

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HINSTANCE GetResourceInstance() throw();

Retourwaarde

Een HINSTANCE.

Opmerkingen

Retourneert het m_hInstResource gegevenslid.

CComModule::GetTypeLibInstance

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HINSTANCE GetTypeLibInstance() const throw();

Retourwaarde

Een HINSTANCE.

Opmerkingen

Retourneert het m_hInstTypeLib gegevenslid.

CComModule::Init

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HRESULT Init(
    _ATL_OBJMAP_ENTRY* p,
    HINSTANCE h,
    const GUID* plibid = NULL) throw();

Parameterwaarden

p
[in] Een aanwijzer naar een matrix met objecttoewijzingvermeldingen.

h
[in] De HINSTANCE is doorgegeven aan DLLMain of WinMain.

plibid
[in] Een aanwijzer naar de LIBID van de typebibliotheek die aan het project is gekoppeld.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Initialiseert alle gegevensleden.

CComModule::m_csObjMap

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

CRITICAL_SECTION m_csObjMap;

Opmerkingen

Zorgt voor gesynchroniseerde toegang tot de objecttoewijzing.

CComModule::m_csTypeInfoHolder

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

CRITICAL_SECTION m_csTypeInfoHolder;

Opmerkingen

Zorgt voor gesynchroniseerde toegang tot de typebibliotheek.

CComModule::m_csWindowCreate

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

CRITICAL_SECTION m_csWindowCreate;

Opmerkingen

Zorgt voor gesynchroniseerde toegang tot vensterklassegegevens en statische gegevens die worden gebruikt tijdens het maken van het venster.

CComModule::m_hInst

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HINSTANCE m_hInst;

Opmerkingen

Bevat de ingang naar het module-exemplaar.

De Init-methode wordt ingesteld m_hInst op de ingang die wordt doorgegeven aan DLLMain of WinMain.

CComModule::m_hInstResource

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HINSTANCE m_hInstResource;

Opmerkingen

Bevat standaard de ingang naar het module-exemplaar.

De Init-methode wordt ingesteld m_hInstResource op de ingang die wordt doorgegeven aan DLLMain of WinMain. U kunt de ingang expliciet instellen m_hInstResource op een resource.

De Methode GetResourceInstance retourneert de ingang die is opgeslagen in m_hInstResource.

CComModule::m_hInstTypeLib

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HINSTANCE m_hInstTypeLib;

Opmerkingen

Bevat standaard de ingang naar het module-exemplaar.

De Init-methode wordt ingesteld m_hInstTypeLib op de ingang die wordt doorgegeven aan DLLMain of WinMain. U kunt de ingang expliciet instellen m_hInstTypeLib op een typebibliotheek.

De methode GetTypeLibInstance retourneert de ingang die is opgeslagen in m_hInstTypeLib.

CComModule::m_pObjMap

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

_ATL_OBJMAP_ENTRY* m_pObjMap;

Opmerkingen

Verwijst naar de objecttoewijzing die wordt onderhouden door het module-exemplaar.

CComModule::RegisterClassHelper

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

ATL_DEPRECATED HRESULT RegisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags);

Parameterwaarden

clsid
[in] De CLSID van het object dat moet worden geregistreerd.

lpszProgID
[in] De ProgID die aan het object is gekoppeld.

lpszVerIndProgID
[in] De versie-onafhankelijke ProgID die aan het object is gekoppeld.

nDescID
[in] De id van een tekenreeksresource voor de beschrijving van het object.

dwFlags
[in] Hiermee geeft u het threadingmodel op dat moet worden ingevoerd in het register. Mogelijke waarden zijn THREADFLAGS_APARTMENT, THREADFLAGS_BOTH of AUTPRXFLAG.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Hiermee voert u de standaardklasseregistratie van een object in het systeemregister in.

De methode UpdateRegistryClass roept aan RegisterClassHelper.

CComModule::RegisterClassObjects

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();

Parameterwaarden

dwClsContext
[in] Hiermee geeft u de context op waarin het klasseobject moet worden uitgevoerd. Mogelijke waarden zijn CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER of CLSCTX_LOCAL_SERVER. Zie CLSCTX in de Windows SDK voor een beschrijving van deze waarden.

dwFlags
[in] Bepaalt de verbindingstypen voor het klasseobject. Mogelijke waarden zijn REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE of REGCLS_MULTI_SEPARATE. Zie REGCLS in de Windows SDK voor een beschrijving van deze waarden.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Registreert een EXE-klasseobject met OLE, zodat andere toepassingen er verbinding mee kunnen maken. Deze methode is alleen beschikbaar voor EXE's.

CComModule::RegisterServer

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HRESULT RegisterServer(
    BOOL bRegTypeLib = FALSE,
    const CLSID* pCLSID = NULL) throw();

Parameterwaarden

bRegTypeLib
[in] Geeft aan of de typebibliotheek wordt geregistreerd. De standaardwaarde is FALSE.

pCLSID
[in] Verwijst naar de CLSID van het object dat moet worden geregistreerd. Als NULL (de standaardwaarde), worden alle objecten in de objecttoewijzing geregistreerd.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Afhankelijk van de parameter pCLSID werkt u het systeemregister bij voor één klasseobject of voor alle objecten in de objecttoewijzing.

Als bRegTypeLib TRUE is, wordt de informatie van de typebibliotheek ook bijgewerkt.

Zie OBJECT_ENTRY_AUTO voor informatie over het toevoegen van een vermelding aan de objecttoewijzing.

RegisterServer wordt automatisch aangeroepen door DLLRegisterServer voor een DLL of door WinMain voor een EXE-uitvoering met de /RegServer opdrachtregeloptie.

CComModule::RegisterTypeLib

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();

Parameterwaarden

lpszIndex
[in] Tekenreeks in de notatie "\\N", waarbij N de gehele index van de TYPELIB-resource is.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Hiermee voegt u informatie over een typebibliotheek toe aan het systeemregister.

Als het module-exemplaar meerdere typebibliotheken bevat, gebruikt u de tweede versie van deze methode om op te geven welke typebibliotheek moet worden gebruikt.

CComModule::RevokeClassObjects

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HRESULT RevokeClassObjects() throw();

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Hiermee verwijdert u het klasseobject. Deze methode is alleen beschikbaar voor EXE's.

CComModule::Term

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

void Term() throw();

Opmerkingen

Alle gegevensleden worden uitgebracht.

CComModule::UnregisterClassHelper

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

ATL_DEPRECATED HRESULT UnregisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID);

Parameterwaarden

clsid
[in] De CLSID van het object dat moet worden uitgeschreven.

lpszProgID
[in] De ProgID die aan het object is gekoppeld.

lpszVerIndProgID
[in] De versie-onafhankelijke ProgID die aan het object is gekoppeld.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Hiermee verwijdert u de standaardklasseregistratie van een object uit het systeemregister.

De methode UpdateRegistryClass roept aan UnregisterClassHelper.

CComModule::UnregisterServer

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();

Parameterwaarden

bUnRegTypeLib
Als WAAR is, wordt de typebibliotheek ook niet geregistreerd.

pCLSID
Verwijst naar de CLSID van het object om de registratie ongedaan te maken. Als NULL (de standaardwaarde) wordt de registratie van alle objecten in de objecttoewijzing ongedaan gemaakt.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Afhankelijk van de parameter pCLSID verwijdert u de registratie van één klasseobject of alle objecten in de objecttoewijzing.

UnregisterServer wordt automatisch aangeroepen door DLLUnregisterServer voor een DLL of door WinMain voor een EXE-uitvoering met de /UnregServer opdrachtregeloptie.

Zie OBJECT_ENTRY_AUTO voor informatie over het toevoegen van een vermelding aan de objecttoewijzing.

CComModule::UpdateRegistryClass

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags,
    BOOL bRegister);

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    LPCTSTR szDesc,
    DWORD dwFlags,
    BOOL bRegister);

Parameterwaarden

clsid
De CLSID van het object dat moet worden geregistreerd of niet geregistreerd.

lpszProgID
De ProgID die aan het object is gekoppeld.

lpszVerIndProgID
De versie-onafhankelijke ProgID die aan het object is gekoppeld.

nDescID
De id van de tekenreeksresource voor de beschrijving van het object.

szDesc
Een tekenreeks met de beschrijving van het object.

dwFlags
Hiermee geeft u het threadingmodel op dat moet worden ingevoerd in het register. Mogelijke waarden zijn THREADFLAGS_APARTMENT, THREADFLAGS_BOTH of AUTPRXFLAG.

bRegister
Geeft aan of het object moet worden geregistreerd.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Als bRegister TRUE is, voert deze methode de standaardklasseregistratie van het object in het systeemregister in.

Als bRegister ONWAAR is, wordt de registratie van het object verwijderd.

Afhankelijk van de waarde van bRegister roept UpdateRegistryClass u RegisterClassHelper of UnregisterClassHelper aan.

Door de DECLARE_REGISTRY macro op te geven, UpdateRegistryClass wordt deze automatisch aangeroepen wanneer de objecttoewijzing wordt verwerkt.

CComModule::UpdateRegistryFromResourceD

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

virtual HRESULT UpdateRegistryFromResourceD(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceD(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();

Parameterwaarden

lpszRes
[in] Een resourcenaam.

nResID
[in] Een resource-id.

bRegister
[in] Geeft aan of het object moet worden geregistreerd.

pMapEntries
[in] Een aanwijzer naar de vervangende toewijzing die waarden opslaat die zijn gekoppeld aan de vervangbare parameters van het script. ATL maakt automatisch gebruik van %MODULE%. Als u aanvullende vervangbare parameters wilt gebruiken, raadpleegt u de opmerkingen voor meer informatie. Gebruik anders de standaardwaarde NULL.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Hiermee wordt het script uitgevoerd dat is opgenomen in de resource die is opgegeven door lpszRes of nResID.

Als bRegister TRUE is, registreert deze methode het object in het systeemregister; anders wordt de registratie van het object opgehefd.

Als u de DECLARE_REGISTRY_RESOURCE of DECLARE_REGISTRY_RESOURCEID macro opgeeft, UpdateRegistryFromResourceD wordt deze automatisch aangeroepen wanneer de objecttoewijzing wordt verwerkt.

Opmerking

Als u vervangingswaarden tijdens runtime wilt vervangen, 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. UpdateRegistryFromResourceDRoep vervolgens de matrix door voor de parameter pMapEntries. Hiermee worden alle vervangingswaarden in de _ATL_REGMAP_ENTRIES structuren toegevoegd aan de vervangingskaart van de registrar.

Opmerking

Zie UpdateRegistryFromResourceS als u statisch een koppeling wilt maken naar het ATL-registeronderdeel (registrar).

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

CComModule::UpdateRegistryFromResourceS

Vanaf ATL 7.0 CComModule is verouderd: zie ATL-moduleklassen voor meer informatie.

virtual HRESULT UpdateRegistryFromResourceS(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceS(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

Parameterwaarden

lpszRes
[in] Een resourcenaam.

nResID
[in] Een resource-id.

bRegister
[in] Geeft aan of het resourcescript moet worden geregistreerd.

pMapEntries
[in] Een aanwijzer naar de vervangende toewijzing die waarden opslaat die zijn gekoppeld aan de vervangbare parameters van het script. ATL maakt automatisch gebruik van %MODULE%. Als u aanvullende vervangbare parameters wilt gebruiken, raadpleegt u de opmerkingen voor meer informatie. Gebruik anders de standaardwaarde NULL.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Net als bij UpdateRegistryFromResourceD , met uitzondering UpdateRegistryFromResourceS van het maken van een statische koppeling naar het ATL-registeronderdeel (registrar).

UpdateRegistryFromResourceS wordt automatisch aangeroepen wanneer uw objecttoewijzing wordt verwerkt, mits u toevoegt #define _ATL_STATIC_REGISTRY aan uw pch.h (stdafx.h in Visual Studio 2017 en eerder).

Opmerking

Als u vervangingswaarden tijdens runtime wilt vervangen, 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. UpdateRegistryFromResourceSRoep vervolgens de matrix door voor de parameter pMapEntries. Hiermee worden alle vervangingswaarden 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

Overzicht van klassen