Module-Klasse

Stellt eine Auflistung von zugehörigen Objekten dar.

Syntax

template<ModuleType moduleType>
class Module;

template<>
class Module<InProc> : public Details::ModuleBase;

template<>
class Module<OutOfProc> : public Module<InProc>;

Parameter

moduleType
Eine Kombination aus einem oder mehreren ModuleType-Enumerationswerten .

Member

Geschützte Klassen

Name Beschreibung
Module::GenericReleaseNotifier Ruft einen Ereignishandler auf, wenn das letzte Objekt im aktuellen Modul freigegeben wird. Der Ereignishandler wird durch eine Lambda-, Functor- oder Zeiger-zu-Funktion angegeben.
Module::MethodReleaseNotifier Ruft einen Ereignishandler auf, wenn das letzte Objekt im aktuellen Modul freigegeben wird. Der Ereignishandler wird durch ein Objekt und dessen Zeiger-zu-a-Methoden-Member angegeben.
Modul::ReleaseNotifier Ruft einen Ereignishandler auf, wenn das letzte Objekt in einem Modul freigegeben wird.

Öffentliche Konstruktoren

Name Beschreibung
Module::~Module Deinitialisiert die aktuelle Instanz der Module Klasse.

Geschützte Konstruktoren

Name Beschreibung
Module::Module Initialisiert eine neue Instanz der Module-Klasse.

Öffentliche Methoden

Name Beschreibung
Modul::Create Erstellt eine Instanz eines Moduls.
Module::D ecrementObjectCount Erhöht die Anzahl der objekte, die vom Modul nachverfolgt werden.
Module::GetActivationFactory Ruft eine Aktivierungsfactory für das Modul ab.
Module::GetClassObject Ruft einen Cache von Klassenfabriken ab.
Module::GetModule Erstellt eine Instanz eines Moduls.
Module::GetObjectCount Ruft die Anzahl der von diesem Modul verwalteten Objekte ab.
Module::IncrementObjectCount Erhöht die Anzahl der vom Modul nachverfolgten Objekte.
Modul::RegisterCOMObject Registriert ein oder mehrere COM-Objekte, damit andere Anwendungen eine Verbindung mit ihnen herstellen können.
Modul::RegisterObjects Registriert COM- oder Windows-Runtime-Objekte, damit andere Anwendungen eine Verbindung mit diesen herstellen können.
Modul::RegisterWinRTObject Registriert ein oder mehrere Windows-Runtime Objekte, damit andere Anwendungen eine Verbindung mit diesen herstellen können.
Modul::Terminate Bewirkt, dass alle Fabriken, die vom Modul instanziiert werden, heruntergefahren werden.
Module::UnregisterCOMObject Hebt die Registrierung eines oder mehrerer COM-Objekte auf, wodurch verhindert wird, dass andere Anwendungen eine Verbindung mit ihnen herstellen.
Module::UnregisterObjects Hebt die Registrierung der Objekte im angegebenen Modul auf, sodass keine Verbindung mit anderen Anwendungen hergestellt werden kann.
Module::UnregisterWinRTObject Hebt die Registrierung eines oder mehrerer Windows-Runtime Objekte auf, sodass keine Verbindung mit anderen Anwendungen hergestellt werden kann.

Geschützte Methoden

Name Beschreibung
Modul::Create Erstellt eine Instanz eines Moduls.

Geschützte Datenmember

Name Beschreibung
Modul::objectCount_ Verfolgt, wie viele Klassen mit der Make-Funktion erstellt wurden.
Modul::releaseNotifier_ Enthält einen Zeiger auf ein ReleaseNotifier Objekt.

Makros

Name Beschreibung
AktivableClass Füllt einen internen Cache auf, der eine Factory enthält, die eine Instanz der angegebenen Klasse erstellen kann. Dieses Makro gibt standardeinstellungen für Factory- und Gruppen-ID-Parameter an.
AktivableClassWithFactory Füllt einen internen Cache auf, der eine Factory enthält, die eine Instanz der angegebenen Klasse erstellen kann. Mit diesem Makro können Sie einen bestimmten Factoryparameter angeben.
AktivableClassWithFactoryEx Füllt einen internen Cache auf, der eine Factory enthält, die eine Instanz der angegebenen Klasse erstellen kann. Mit diesem Makro können Sie bestimmte Factory- und Gruppen-ID-Parameter angeben.

Vererbungshierarchie

ModuleBase

Module

Module

Anforderungen

Kopfzeile: module.h

Namespace: Microsoft::WRL

Module::~Module

Deinitialisiert die aktuelle Instanz der Module Klasse.

virtual ~Module();

Modul::Create

Erstellt eine Instanz eines Moduls.

WRL_NOTHROW static Module& Create();
template<typename T>
WRL_NOTHROW static Module& Create(
   T callback
);
template<typename T>
WRL_NOTHROW static Module& Create(
   _In_ T* object,
   _In_ void (T::* method)()
);

Parameter

T
Modultyp.

Rückruf
Wird aufgerufen, wenn das letzte Instanzobjekt des Moduls freigegeben wird.

object
Die Objekt - und Methodenparameter werden in Kombination verwendet. Verweist auf das letzte Instanzobjekt, wenn das letzte Instanzobjekt im Modul freigegeben wird.

method
Die Objekt - und Methodenparameter werden in Kombination verwendet. Verweist auf die Methode des letzten Instanzobjekts, wenn das letzte Instanzobjekt im Modul freigegeben wird.

Rückgabewert

Verweisen auf das Modul.

Module::D ecrementObjectCount

Erhöht die Anzahl der objekte, die vom Modul nachverfolgt werden.

virtual long DecrementObjectCount();

Rückgabewert

Die Anzahl vor dem Dekrementvorgang.

Module::GetActivationFactory

Ruft eine Aktivierungsfactory für das Modul ab.

WRL_NOTHROW HRESULT GetActivationFactory(
   _In_ HSTRING pActivatibleClassId,
   _Deref_out_ IActivationFactory **ppIFactory,
   wchar_t* serverName = nullptr
);

Parameter

pActivatibleClassId
IID einer Laufzeitklasse.

ppIFactory
Die IActivationFactory für die angegebene Laufzeitklasse.

serverName
Der Name einer Teilmenge von Klassenfabriken im aktuellen Modul. Geben Sie den Servernamen an, der im AktivableClassWithFactoryEx-Makro verwendet wird, oder geben nullptr Sie an, um den Standardservernamen abzurufen.

Rückgabewert

bei erfolgreicher Ausführung S_OK; andernfalls das von GetActivationFactory zurückgegebene HRESULT.

Module::GetClassObject

Ruft einen Cache von Klassenfabriken ab.

HRESULT GetClassObject(
   REFCLSID clsid,
   REFIID riid,
   _Deref_out_ void **ppv,
   wchar_t* serverName = nullptr
);

Parameter

Clsid
Klassen-ID.

riid
Schnittstellen-ID, die Sie anfordern.

Ppv
Zeiger, um das zurückgegebene Objekt zurückzugeben.

serverName
Der Servername, der ActivatableClassWithFactoryentweder im Oder ActivatableClassWithFactoryExActivatableClass Makro angegeben ist, oder nullptr um den Standardservernamen abzurufen.

Rückgabewert

Bemerkungen

Verwenden Sie diese Methode nur für COM, nicht für die Windows-Runtime. Diese Methode macht nur IClassFactory Methoden verfügbar.

Module::GetModule

Erstellt eine Instanz eines Moduls.

static Module& GetModule();
WRL_NOTHROW static Module& GetModule();

Rückgabewert

Ein Verweis auf ein Modul.

Module::GetObjectCount

Ruft die Anzahl der von diesem Modul verwalteten Objekte ab.

virtual long GetObjectCount() const;

Rückgabewert

Die aktuelle Anzahl von Objekten, die von diesem Modul verwaltet werden.

Module::IncrementObjectCount

Erhöht die Anzahl der vom Modul nachverfolgten Objekte.

virtual long IncrementObjectCount();

Rückgabewert

Die Anzahl vor dem Inkrementvorgang.

Module::Module

Initialisiert eine neue Instanz der Module-Klasse.

Module();

Hinweise

Dieser Konstruktor ist geschützt und kann nicht mit dem new Schlüsselwort (keyword) aufgerufen werden. Rufen Sie stattdessen entweder Module::GetModule oder Module::Create auf.

Modul::objectCount_

Verfolgt, wie viele Klassen mit der Make-Funktion erstellt wurden.

volatile long objectCount_;

Modul::RegisterCOMObject

Registriert ein oder mehrere COM-Objekte, damit andere Anwendungen eine Verbindung mit ihnen herstellen können.

WRL_NOTHROW virtual HRESULT RegisterCOMObject(
   const wchar_t* serverName,
   IID* clsids,
   IClassFactory** factories,
   DWORD* cookies,
   unsigned int count);

Parameter

serverName
Vollqualifizierter Name eines Servers.

Clsids
Ein Array von CLSIDs, die registriert werden sollen.

factories
Ein Array von IUnknown-Schnittstellen der Klassenobjekte, deren Verfügbarkeit veröffentlicht wird.

cookies
Nach Abschluss des Vorgangs gibt es ein Array von Zeigern auf Werte, die die klassenobjekte identifizieren, die registriert wurden. Diese Werte werden später verwendet, um die Registrierung zu widerrufen.

count
Die Anzahl der zu registrierenden CLSIDs.

Rückgabewert

bei erfolgreicher Ausführung S_OK; andernfalls gibt ein HRESULT wie CO_E_OBJISREG an, der den Grund für den Fehler des Vorgangs angibt.

Hinweise

Die COM-Objekte werden mit dem CLSCTX_LOCAL_SERVER Enumerator der CLSCTX-Enumeration registriert.

Der Verbindungstyp mit den registrierten Objekten wird durch eine Kombination aus dem aktuellen Comflag-Vorlagenparameter und dem REGCLS_SUSPENDED Enumerator der REGCLS-Enumeration angegeben.

Modul::RegisterObjects

Registriert COM- oder Windows-Runtime-Objekte, damit andere Anwendungen eine Verbindung mit diesen herstellen können.

HRESULT RegisterObjects(
   ModuleBase* module,
   const wchar_t* serverName);

Parameter

module
Ein Array von COM- oder Windows-Runtime-Objekten.

serverName
Name des Servers, der die Objekte erstellt hat.

Rückgabewert

bei erfolgreicher Ausführung S_OK; andernfalls ein HRESULT, das angibt, warum der Vorgang fehlgeschlagen ist.

Modul::RegisterWinRTObject

Registriert ein oder mehrere Windows-Runtime Objekte, damit andere Anwendungen eine Verbindung mit diesen herstellen können.

HRESULT RegisterWinRTObject(const wchar_t* serverName,
   wchar_t** activatableClassIds,
   WINRT_REGISTRATION_COOKIE* cookie,
   unsigned int count)

Parameter

serverName
Ein Name, der eine Teilmenge von Objekten angibt, die von diesem Vorgang betroffen sind.

aktivableClassIds
Ein Array von aktivierbaren CLSIDs, die registriert werden sollen.

Cookie
Ein Wert, der die Klassenobjekte identifiziert, die registriert wurden. Dieser Wert wird später verwendet, um die Registrierung zu widerrufen.

count
Die Anzahl der zu registrierenden Objekte.

Rückgabewert

bei erfolgreicher Ausführung S_OK; andernfalls ist ein HRESULT-Fehler wie z. B. CO_E_OBJISREG, der angibt, warum der Vorgang fehlgeschlagen ist.

Modul::releaseNotifier_

Enthält einen Zeiger auf ein ReleaseNotifier Objekt.

ReleaseNotifier *releaseNotifier_;

Modul::Terminate

Bewirkt, dass alle Fabriken, die vom Modul instanziiert werden, heruntergefahren werden.

void Terminate();

Hinweise

Gibt die Fabriken im Cache frei.

Module::UnregisterCOMObject

Hebt die Registrierung eines oder mehrerer COM-Objekte auf, wodurch verhindert wird, dass andere Anwendungen eine Verbindung mit ihnen herstellen.

virtual HRESULT UnregisterCOMObject(
   const wchar_t* serverName,
   DWORD* cookies,
   unsigned int count

Parameter

serverName
(Nicht verwendet)

cookies
Ein Array von Zeigern auf Werte, die die Klassenobjekte identifizieren, die nicht registriert werden sollen. Das Array wurde von der RegisterCOMObject-Methode erstellt.

count
Die Anzahl der Klassen, um die Registrierung aufzuheben.

Rückgabewert

S_OK, wenn dieser Vorgang erfolgreich ist; andernfalls ein HRESULT-Fehler, der angibt, warum der Vorgang fehlgeschlagen ist.

Module::UnregisterObjects

Hebt die Registrierung der Objekte im angegebenen Modul auf, sodass keine Verbindung mit anderen Anwendungen hergestellt werden kann.

HRESULT UnregisterObjects(
   ModuleBase* module,
   const wchar_t* serverName);

Parameter

module
Zeiger auf ein Modul.

serverName
Ein qualifizierter Name, der eine Teilmenge von Objekten angibt, die von diesem Vorgang betroffen sind.

Rückgabewert

S_OK, wenn dieser Vorgang erfolgreich ist; andernfalls ein Fehler-HRESULT, der angibt, warum dieser Vorgang fehlgeschlagen ist.

Module::UnregisterWinRTObject

Hebt die Registrierung eines oder mehrerer Windows-Runtime Objekte auf, sodass keine Verbindung mit anderen Anwendungen hergestellt werden kann.

virtual HRESULT UnregisterWinRTObject(
   unsigned int,
   _Inout_ WINRT_REGISTRATION_COOKIE* cookie
);

Parameter

Cookie
Ein Zeiger auf einen Wert, der das Klassenobjekt identifiziert, dessen Registrierung widerrufen werden soll.