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 _Module
der 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.
CComModule
Neben 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
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 UpdateRegistryFromResourceD
dann 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).
UpdateRegistryFromResourceS
wird 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 UpdateRegistryFromResourceS
dann 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)".