Freigeben über


CComModule-Klasse

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

class CComModule : public _ATL_MODULE

Member

Öffentliche Methoden

Name Beschreibung
CComModule::GetClassObject Erstellt ein Objekt einer angegebenen CLSID. Nur für DLLs.
CComModule::GetModuleInstance Gibt m_hInst zurück.
CComModule::GetResourceInstance Gibt m_hInstResource zurück.
CComModule::GetTypeLibInstance Gibt m_hInstTypeLib zurück.
CComModule::Init Initialisiert Datenmber.
CComModule::RegisterClassHelper Gibt die Standardklassenregistrierung eines Objekts in die Systemregistrierung ein.
CComModule::RegisterClassObjects Registriert das Klassenobjekt. Nur für EXEs.
CComModule::RegisterServer Aktualisiert die Systemregistrierung für jedes Objekt in der Objektzuordnung.
CComModule::RegisterTypeLib Registriert eine Typbibliothek.
CComModule::RevokeClassObjects Widerruft das Klassenobjekt. Nur für EXEs.
CComModule::Term Gibt Datenmber frei.
CComModule::UnregisterClassHelper Entfernt die Standardklassenregistrierung eines Objekts aus der Systemregistrierung.
CComModule::UnregisterServer Hebt die Registrierung der einzelnen Objekte in der Objektzuordnung auf.
CComModule::UpdateRegistryClass Registriert oder hebt die Registrierung der Standardklassenregistrierung eines Objekts auf.
CComModule::UpdateRegistryFromResourceD Führt das in einer angegebenen Ressource enthaltene Skript aus, um ein Objekt zu registrieren oder aufzuheben.
CComModule::UpdateRegistryFromResourceS Statische Verknüpfungen mit der ATL-Registrierungskomponente. Führt das in einer angegebenen Ressource enthaltene Skript aus, um ein Objekt zu registrieren oder aufzuheben.

Öffentliche Datenmember

Name Beschreibung
CComModule::m_csObjMap Stellt den synchronisierten Zugriff auf die Objektzuordnungsinformationen sicher.
CComModule::m_csTypeInfoHolder Stellt den synchronisierten Zugriff auf die Typbibliotheksinformationen sicher.
CComModule::m_csWindowCreate Stellt den synchronisierten Zugriff auf Fensterklasseninformationen und statische Daten sicher, die während der Fenstererstellung verwendet werden.
CComModule::m_hInst Enthält das Handle für die Modulinstanz.
CComModule::m_hInstResource Enthält standardmäßig das Handle für die Modulinstanz.
CComModule::m_hInstTypeLib Enthält standardmäßig das Handle für die Modulinstanz.
CComModule::m_pObjMap Verweist auf die objektzuordnung, die von der Modulinstanz verwaltet wird.

Hinweise

Hinweis

Diese Klasse ist veraltet, und die ATL-Codegenerierungs-Assistenten verwenden jetzt die von CAtlAutoThreadModule und CAtlModule abgeleiteten Klassen. Weitere Informationen finden Sie unter ATL-Modulklassen . Die folgenden Informationen dienen zur Verwendung mit Anwendungen, die mit älteren Versionen von ATL erstellt wurden. CComModule ist weiterhin Teil von ATL für die Rückwärtsfunktion.

CComModule implementiert ein COM-Servermodul, sodass ein Client auf die Komponenten des Moduls zugreifen kann. CComModule unterstützt sowohl DLL-Module (In-Process) als auch EXE-Module (local).

Eine CComModule Instanz verwendet eine Objektzuordnung, um eine Reihe von Klassenobjektdefinitionen beizubehalten. Diese Objektzuordnung wird als Array von _ATL_OBJMAP_ENTRY Strukturen implementiert und enthält Informationen für:

  • Eingeben und Entfernen von Objektbeschreibungen in der Systemregistrierung.

  • Instanziieren von Objekten über eine Klassenfactory.

  • Einrichten der Kommunikation zwischen einem Client und dem Stammobjekt in der Komponente.

  • Durchführen der Lebensdauerverwaltung von Klassenobjekten.

Wenn Sie den ATL COM AppWizard ausführen, generiert _Moduleder Assistent automatisch eine globale Instanz oder CComModule eine daraus abgeleitete Klasse. Weitere Informationen zum ATL-Projekt-Assistenten finden Sie im Artikel Erstellen eines ATL-Projekts.

CComModuleNeben atL stellt ATL CComAutoThreadModule bereit, das ein Apartmentmodellmodul für EXEs und Windows-Dienste implementiert. Leiten Sie Ihr Modul ab CComAutoThreadModule , wenn Sie Objekte in mehreren Wohnungen erstellen möchten.

Vererbungshierarchie

_ATL_MODULE

CAtlModule

CAtlModuleT

CComModule

Anforderungen

Kopfzeile: atlbase.h

CComModule::GetClassObject

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

rclsid
[in] Die CLSID des zu erstellenden Objekts.

riid
[in] Die IID der angeforderten -Schnittstelle.

ppv
[out] Ein Zeiger auf den Schnittstellenzeiger, der von riid identifiziert wird. Wenn das Objekt diese Schnittstelle nicht unterstützt, wird ppv auf NULL festgelegt.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Erstellt ein Objekt der angegebenen CLSID und ruft einen Schnittstellenzeiger auf dieses Objekt ab.

GetClassObject ist nur für DLLs verfügbar.

CComModule::GetModuleInstance

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

HINSTANCE GetModuleInstance() throw();

Rückgabewert

Die HINSTANCE, die dieses Modul identifiziert.

Hinweise

Gibt das m_hInst-Datenmemm zurück.

CComModule::GetResourceInstance

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

HINSTANCE GetResourceInstance() throw();

Rückgabewert

Ein HINWEIS.

Hinweise

Gibt das m_hInstResource-Datenmemm zurück.

CComModule::GetTypeLibInstance

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

HINSTANCE GetTypeLibInstance() const throw();

Rückgabewert

Ein HINWEIS.

Hinweise

Gibt das m_hInstTypeLib-Datenmemm zurück.

CComModule::Init

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

p
[in] Ein Zeiger auf ein Array von Objektzuordnungseinträgen.

h
[in] Der HINSTANCE-Pass an DLLMain oder WinMain.

plibid
[in] Ein Zeiger auf die LIBID der Typbibliothek, die dem Projekt zugeordnet ist.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Initialisiert alle Datenmber.

CComModule::m_csObjMap

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

CRITICAL_SECTION m_csObjMap;

Hinweise

Stellt den synchronisierten Zugriff auf die Objektzuordnung sicher.

CComModule::m_csTypeInfoHolder

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

CRITICAL_SECTION m_csTypeInfoHolder;

Hinweise

Stellt den synchronisierten Zugriff auf die Typbibliothek sicher.

CComModule::m_csWindowCreate

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

CRITICAL_SECTION m_csWindowCreate;

Hinweise

Stellt den synchronisierten Zugriff auf Fensterklasseninformationen und statische Daten sicher, die während der Fenstererstellung verwendet werden.

CComModule::m_hInst

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

HINSTANCE m_hInst;

Hinweise

Enthält das Handle für die Modulinstanz.

Die Init-Methode wird auf den An- oder WinMainÜbergabepunkt DLLMain festgelegtm_hInst.

CComModule::m_hInstResource

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

HINSTANCE m_hInstResource;

Hinweise

Enthält standardmäßig das Handle für die Modulinstanz.

Die Init-Methode wird auf den An- oder WinMainÜbergabepunkt DLLMain festgelegtm_hInstResource. Sie können explizit auf das Handle auf eine Ressource festlegen m_hInstResource .

Die GetResourceInstance-Methode gibt das in m_hInstResource.

CComModule::m_hInstTypeLib

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

HINSTANCE m_hInstTypeLib;

Hinweise

Enthält standardmäßig das Handle für die Modulinstanz.

Die Init-Methode wird auf den An- oder WinMainÜbergabepunkt DLLMain festgelegtm_hInstTypeLib. Sie können explizit auf das Handle auf eine Typbibliothek festlegen m_hInstTypeLib .

Die GetTypeLibInstance-Methode gibt das in m_hInstTypeLib.

CComModule::m_pObjMap

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

_ATL_OBJMAP_ENTRY* m_pObjMap;

Hinweise

Verweist auf die objektzuordnung, die von der Modulinstanz verwaltet wird.

CComModule::RegisterClassHelper

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

clsid
[in] Die CLSID des zu registrierenden Objekts.

lpszProgID
[in] Die ProgID, die dem Objekt zugeordnet ist.

lpszVerIndProgID
[in] Die versionsunabhängige ProgID, die dem Objekt zugeordnet ist.

nDescID
[in] Der Bezeichner einer Zeichenfolgenressource für die Beschreibung des Objekts.

dwFlags
[in] Gibt das Threadingmodell an, das in die Registrierung eingegeben werden soll. Mögliche Werte sind THREADFLAGS_APARTMENT, THREADFLAGS_BOTH oder AUTPRXFLAG.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Gibt die Standardklassenregistrierung eines Objekts in die Systemregistrierung ein.

Die UpdateRegistryClass-Methode ruft auf RegisterClassHelper.

CComModule::RegisterClassObjects

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

dwClsContext
[in] Gibt den Kontext an, in dem das Klassenobjekt ausgeführt werden soll. Mögliche Werte sind CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER oder CLSCTX_LOCAL_SERVER. Eine Beschreibung dieser Werte finden Sie unter CLSCTX im Windows SDK.

dwFlags
[in] Bestimmt die Verbindungstypen mit dem Klassenobjekt. Mögliche Werte sind REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE oder REGCLS_MULTI_SEPARATE. Eine Beschreibung dieser Werte finden Sie unter REGCLS im Windows SDK.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Registriert ein EXE-Klassenobjekt mit OLE, damit andere Anwendungen eine Verbindung damit herstellen können. Diese Methode ist nur für EXEs verfügbar.

CComModule::RegisterServer

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

bRegTypeLib
[in] Gibt an, ob die Typbibliothek registriert wird. Der Standardwert ist FALSCH.

pCLSID
[in] Verweist auf die CLSID des zu registrierenden Objekts. Wenn NULL (Standardwert) alle Objekte in der Objektzuordnung registriert werden.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Aktualisiert die Systemregistrierung je nach pCLSID-Parameter für ein einzelnes Klassenobjekt oder für alle Objekte in der Objektzuordnung.

Wenn bRegTypeLib TRUE ist, werden die Typbibliotheksinformationen ebenfalls aktualisiert.

Informationen zum Hinzufügen eines Eintrags zur Objektzuordnung finden Sie unter OBJECT_ENTRY_AUTO .

RegisterServer wird automatisch für DLLRegisterServer eine DLL oder WinMain für eine EXE-Ausführung mit der /RegServer Befehlszeilenoption aufgerufen.

CComModule::RegisterTypeLib

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

lpszIndex
[in] Zeichenfolge im Format "\\N", wobei N der ganzzahlige Index der TYPELIB-Ressource ist.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Fügt der Systemregistrierung Informationen zu einer Typbibliothek hinzu.

Wenn die Modulinstanz mehrere Typbibliotheken enthält, verwenden Sie die zweite Version dieser Methode, um anzugeben, welche Typbibliothek verwendet werden soll.

CComModule::RevokeClassObjects

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

HRESULT RevokeClassObjects() throw();

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Entfernt das Klassenobjekt. Diese Methode ist nur für EXEs verfügbar.

CComModule::Term

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

void Term() throw();

Hinweise

Gibt alle Datenmitglieder frei.

CComModule::UnregisterClassHelper

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

clsid
[in] Die CLSID des Objekts, das nicht registriert werden soll.

lpszProgID
[in] Die ProgID, die dem Objekt zugeordnet ist.

lpszVerIndProgID
[in] Die versionsunabhängige ProgID, die dem Objekt zugeordnet ist.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Entfernt die Standardklassenregistrierung eines Objekts aus der Systemregistrierung.

Die UpdateRegistryClass-Methode ruft auf UnregisterClassHelper.

CComModule::UnregisterServer

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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

Parameter

bUnRegTypeLib
Wenn WAHR, wird die Typbibliothek ebenfalls nicht registriert.

pCLSID
Verweist auf die CLSID des Objekts, das nicht registriert werden soll. Wenn NULL (Standardwert) alle Objekte in der Objektzuordnung nicht registriert werden.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Hebt je nach pCLSID-Parameter entweder die Registrierung eines einzelnen Klassenobjekts oder aller Objekte in der Objektzuordnung auf.

UnregisterServer wird automatisch für DLLUnregisterServer eine DLL oder WinMain für eine EXE-Ausführung mit der /UnregServer Befehlszeilenoption aufgerufen.

Informationen zum Hinzufügen eines Eintrags zur Objektzuordnung finden Sie unter OBJECT_ENTRY_AUTO .

CComModule::UpdateRegistryClass

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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);

Parameter

clsid
Die CLSID des Objekts, das registriert oder nicht registriert werden soll.

lpszProgID
Die ProgID, die dem Objekt zugeordnet ist.

lpszVerIndProgID
Die versionsunabhängige ProgID, die dem Objekt zugeordnet ist.

nDescID
Der Bezeichner der Zeichenfolgenressource für die Beschreibung des Objekts.

szDesc
Eine Zeichenfolge, die die Beschreibung des Objekts enthält.

dwFlags
Gibt das Threadingmodell an, das in die Registrierung eingegeben werden soll. Mögliche Werte sind THREADFLAGS_APARTMENT, THREADFLAGS_BOTH oder AUTPRXFLAG.

bRegister
Gibt an, ob das Objekt registriert werden soll.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Wenn bRegister TRUE ist, gibt diese Methode die Standardklassenregistrierung des Objekts in die Systemregistrierung ein.

Wenn bRegister FALSCH ist, wird die Registrierung des Objekts entfernt.

Ruft abhängig vom Wert von bRegisterUpdateRegistryClass entweder RegisterClassHelper oder UnregisterClassHelper auf.

Durch Angeben des DECLARE_REGISTRY Makros wird automatisch aufgerufen, UpdateRegistryClass wenn die Objektzuordnung verarbeitet wird.

CComModule::UpdateRegistryFromResourceD

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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 ();

Parameter

lpszRes
[in] Ein Ressourcenname.

nResID
[in] Eine Ressourcen-ID.

bRegister
[in] Gibt an, ob das Objekt registriert werden soll.

pMapEntries
[in] Ein Zeiger auf die Ersetzungszuordnung, die Werte speichert, die den ersetzbaren Parametern des Skripts zugeordnet sind. ATL verwendet %MODULE%automatisch . Weitere austauschbare Parameter finden Sie in den Anmerkungen. Verwenden Sie andernfalls den NULL-Standardwert.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Führt das skript aus, das in der ressource enthalten ist, die durch lpszRes oder nResID angegeben ist.

Wenn bRegister TRUE ist, registriert diese Methode das Objekt in der Systemregistrierung. Andernfalls wird die Registrierung des Objekts aufgehoben.

Durch Angeben des DECLARE_REGISTRY_RESOURCE- oder DECLARE_REGISTRY_RESOURCEID-Makros wird automatisch aufgerufen, UpdateRegistryFromResourceD wenn die Objektzuordnung verarbeitet wird.

Hinweis

Wenn Sie zur Laufzeit Ersatzwerte ersetzen möchten, geben Sie nicht das makro DECLARE_REGISTRY_RESOURCE oder DECLARE_REGISTRY_RESOURCEID an. Erstellen Sie stattdessen ein Array von _ATL_REGMAP_ENTRIES Strukturen, in dem jeder Eintrag einen Variablenplatzhalter enthält, der mit einem Wert gekoppelt ist, um den Platzhalter zur Laufzeit zu ersetzen. Rufen Sie UpdateRegistryFromResourceDdann das Array für den pMapEntries-Parameter auf. Dadurch werden alle Ersetzungswerte in den _ATL_REGMAP_ENTRIES Strukturen zur Ersatzzuordnung der Registrierungsstelle hinzugefügt.

Hinweis

Informationen zum statischen Verknüpfen mit der ATL-Registrierungskomponente (Registrierungsstelle) finden Sie unter UpdateRegistryFromResourceS.

Weitere Informationen zu austauschbaren Parametern und Skripts finden Sie im Artikel "AtL Registry Component (Registrar)".

CComModule::UpdateRegistryFromResourceS

Ab ATL 7.0 CComModule ist veraltet: Weitere Details finden Sie unter ATL-Modulklassen .

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();

Parameter

lpszRes
[in] Ein Ressourcenname.

nResID
[in] Eine Ressourcen-ID.

bRegister
[in] Gibt an, ob das Ressourcenskript registriert werden soll.

pMapEntries
[in] Ein Zeiger auf die Ersetzungszuordnung, die Werte speichert, die den ersetzbaren Parametern des Skripts zugeordnet sind. ATL verwendet %MODULE%automatisch . Weitere austauschbare Parameter finden Sie in den Anmerkungen. Verwenden Sie andernfalls den NULL-Standardwert.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Ähnlich wie UpdateRegistryFromResourceD mit Ausnahme UpdateRegistryFromResourceS einer statischen Verknüpfung zur ATL-Registrierungskomponente (Registrar).

UpdateRegistryFromResourceSwird automatisch aufgerufen, wenn die Objektzuordnung verarbeitet wird, sofern Sie zu Ihrem pch.h (stdafx.h in Visual Studio 2017 und früheren Versionen) hinzufügen#define _ATL_STATIC_REGISTRY.

Hinweis

Wenn Sie zur Laufzeit Ersatzwerte ersetzen möchten, geben Sie nicht das makro DECLARE_REGISTRY_RESOURCE oder DECLARE_REGISTRY_RESOURCEID an. Erstellen Sie stattdessen ein Array von _ATL_REGMAP_ENTRIES Strukturen, in dem jeder Eintrag einen Variablenplatzhalter enthält, der mit einem Wert gekoppelt ist, um den Platzhalter zur Laufzeit zu ersetzen. Rufen Sie UpdateRegistryFromResourceSdann das Array für den pMapEntries-Parameter auf. Dadurch werden alle Ersetzungswerte in den _ATL_REGMAP_ENTRIES Strukturen zur Ersatzzuordnung der Registrierungsstelle hinzugefügt.

Weitere Informationen zu austauschbaren Parametern und Skripts finden Sie im Artikel "AtL Registry Component (Registrar)".

Siehe auch

Klassenübersicht