Compartir a través de


Module (clase)

Representa una colección de objetos relacionados.

Sintaxis

template<ModuleType moduleType>
class Module;

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

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

Parámetros

moduleType
Combinación de uno o varios valores de enumeración ModuleType.

Miembros

Clases protegidas

Nombre Descripción
Module::GenericReleaseNotifier Invoca un controlador de eventos cuando se libera el último objeto del módulo actual. El controlador de eventos lo especifica una expresión lambda, una función o un puntero a función.
Module::MethodReleaseNotifier Invoca un controlador de eventos cuando se libera el último objeto del módulo actual. El controlador de eventos se especifica mediante un objeto y su miembro de puntero a método.
Module::ReleaseNotifier Invoca a un controlador de eventos cuando se libera el último objeto de un módulo.

Constructores públicos

Nombre Descripción
Module::~Module Desinicializa la instancia actual de la clase Module.

Constructores protegidos

Nombre Descripción
Module::Module Inicializa una nueva instancia de la clase Module.

Métodos públicos

Nombre Descripción
Module::Create Crea una instancia de un módulo.
Module::DecrementObjectCount Reduce el número de objetos a los que el módulo realiza un seguimiento.
Module::GetActivationFactory Obtiene un generador de activación para el módulo.
Module::GetClassObject Recupera una caché de generadores de clases.
Module::GetModule Crea una instancia de un módulo.
Module::GetObjectCount Recupera el número de objetos administrados por este módulo.
Module::IncrementObjectCount Aumenta el número de objetos a los que el módulo realiza un seguimiento.
Module::RegisterCOMObject Registra uno o varios objetos COM para que otras aplicaciones puedan conectarse a ellos.
Module::RegisterObjects Registra objetos de COM o Windows Runtime para que otras aplicaciones puedan conectarse a ellos.
Module::RegisterWinRTObject Registra uno o varios objetos Windows Runtime para que otras aplicaciones puedan conectarse a ellos.
Module::Terminate Hace que se cierren todos los generadores de los que el módulo ha creado instancias.
Module::UnregisterCOMObject Anula el registro de uno o varios objetos COM, lo que impide que otras aplicaciones se conecten a ellos.
Module::UnregisterObjects Anula el registro de los objetos del módulo especificado para que otras aplicaciones no puedan conectarse a ellos.
Module::UnregisterWinRTObject Anula el registro de uno o varios objetos Windows Runtime para que otras aplicaciones no puedan conectarse a ellos.

Métodos protegidos

Nombre Descripción
Module::Create Crea una instancia de un módulo.

Miembros de datos protegidos

Nombre Descripción
Module::objectCount_ Realiza un seguimiento del número de clases que se han creado con la función Make.
Module::releaseNotifier_ Contiene un puntero a un objeto ReleaseNotifier.

Macros

Nombre Descripción
ActiveableClass Rellena una caché interna que contiene un generador que puede crear una instancia de la clase especificada. Esta macro especifica los parámetros predeterminados de generador y identificador de grupo.
ActiveableClassWithFactory Rellena una caché interna que contiene un generador que puede crear una instancia de la clase especificada. Esta macro permite especificar un parámetro de generador determinado.
ActiveableClassWithFactoryEx Rellena una caché interna que contiene un generador que puede crear una instancia de la clase especificada. Esta macro permite especificar parámetros de generador e identificador de grupo determinados.

Jerarquía de herencia

ModuleBase

Module

Module

Requisitos

Encabezado: module.h

Espacio de nombres: Microsoft::WRL

Module::~Module

Desinicializa la instancia actual de la clase Module.

virtual ~Module();

Module::Create

Crea una instancia de un módulo.

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

Parámetros

T
Tipo de módulo.

callback
Se llama cuando se libera el último objeto de instancia del módulo.

object
Los parámetros object y method se usan en combinación. Apunta al último objeto de instancia cuando se libera el último objeto de instancia del módulo.

method
Los parámetros object y method se usan en combinación. Apunta al método del último objeto de instancia cuando se libera el último objeto de instancia del módulo.

Valor devuelto

Referencia al módulo.

Module::DecrementObjectCount

Reduce el número de objetos a los que el módulo realiza un seguimiento.

virtual long DecrementObjectCount();

Valor devuelto

Recuento antes de la operación de reducción.

Module::GetActivationFactory

Obtiene un generador de activación para el módulo.

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

Parámetros

pActivatibleClassId
Identificador de interfaz de una clase en tiempo de ejecución.

ppIFactory
IActivationFactory de la clase en tiempo de ejecución especificada.

serverName
Nombre de un subconjunto de generadores de clases del módulo actual. Especifique el nombre del servidor usado en la macro ActivatableClassWithFactoryEx o especifique nullptr para obtener el nombre de servidor predeterminado.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, el HRESULT devuelto por GetActivationFactory.

Module::GetClassObject

Recupera una caché de generadores de clases.

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

Parámetros

clsid
Identificador de clase.

riid
Identificador de interfaz que se solicita.

ppv
Puntero al objeto devuelto.

serverName
El nombre del servidor especificado en las macros ActivatableClassWithFactory, ActivatableClassWithFactoryExo ActivatableClass, o en nullptr para obtener el nombre de servidor predeterminado.

Valor devuelto

Comentarios

Use este método solo para COM, no para Windows Runtime. Este método expone solo métodos IClassFactory.

Module::GetModule

Crea una instancia de un módulo.

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

Valor devuelto

Referencia a un módulo.

Module::GetObjectCount

Recupera el número de objetos administrados por este módulo.

virtual long GetObjectCount() const;

Valor devuelto

El número actual de objetos que administra este módulo.

Module::IncrementObjectCount

Aumenta el número de objetos a los que el módulo realiza un seguimiento.

virtual long IncrementObjectCount();

Valor devuelto

Recuento antes de la operación de aumento.

Module::Module

Inicializa una nueva instancia de la clase Module.

Module();

Comentarios

Este constructor está protegido y no se le puede llamar a con la palabra clave new. En su lugar, llame a Module::GetModule o Module::Create.

Module::objectCount_

Realiza un seguimiento del número de clases que se han creado con la función Make.

volatile long objectCount_;

Module::RegisterCOMObject

Registra uno o varios objetos COM para que otras aplicaciones puedan conectarse a ellos.

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

Parámetros

serverName
Nombre completo de un servidor.

clsids
Matriz de los CLSID que se va a registrar.

factories
Matriz de interfaces IUnknown de los objetos de clase cuya disponibilidad se publica.

cookies
Cuando se completa la operación, una matriz de punteros a valores que identifican los objetos de clase registrados. Estos valores se usan más adelante para revocar el registro.

count
Número de CLSID que se van a registrar.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT, como CO_E_OBJISREG que indica el motivo por el que se produjo un error en la operación.

Comentarios

Los objetos COM se registran con el enumerador CLSCTX_LOCAL_SERVER de la enumeración CLSCTX.

El tipo de conexión a los objetos registrados se especifica mediante una combinación del parámetro de plantilla comflag actual y el enumerador REGCLS_SUSPENDED de la enumeración REGCLS.

Module::RegisterObjects

Registra objetos de COM o Windows Runtime para que otras aplicaciones puedan conectarse a ellos.

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

Parámetros

module
Matriz de objetos de COM o Windows Runtime.

serverName
Nombre del servidor que creó los objetos.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT que indica el motivo por el que no se realizó la operación.

Module::RegisterWinRTObject

Registra uno o varios objetos Windows Runtime para que otras aplicaciones puedan conectarse a ellos.

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

Parámetros

serverName
Nombre que especifica un subconjunto de objetos afectados por esta operación.

activatableClassIds
Matriz de CLSID activables que se van a registrar.

cookie
Valor que identifica los objetos de clase registrados. Este valor se usa más adelante para revocar el registro.

count
Número de objetos que se van a registrar.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT de error, como CO_E_OBJISREG, que indica el motivo por el que se produjo un error en la operación.

Module::releaseNotifier_

Contiene un puntero a un objeto ReleaseNotifier.

ReleaseNotifier *releaseNotifier_;

Module::Terminate

Hace que se cierren todos los generadores de los que el módulo ha creado instancias.

void Terminate();

Comentarios

Libera los generadores en la caché.

Module::UnregisterCOMObject

Anula el registro de uno o varios objetos COM, lo que impide que otras aplicaciones se conecten a ellos.

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

Parámetros

serverName
(Sin usar)

cookies
Matriz de punteros a valores que identifican los objetos de clase cuyo registro se va a anular. La matriz se creó mediante el método RegisterCOMObject.

count
Número de clases cuyo registro se va a anular.

Valor devuelto

S_OK si esta operación es correcta; de lo contrario, un HRESULT de error que indica el motivo del error de la operación.

Module::UnregisterObjects

Anula el registro de los objetos del módulo especificado para que otras aplicaciones no puedan conectarse a ellos.

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

Parámetros

module
Puntero a un módulo.

serverName
Nombre aplicable que especifica un subconjunto de objetos afectados por esta operación.

Valor devuelto

S_OK si esta operación es correcta; de lo contrario, un HRESULT de error que indica el motivo del error de esta operación.

Module::UnregisterWinRTObject

Anula el registro de uno o varios objetos Windows Runtime para que otras aplicaciones no puedan conectarse a ellos.

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

Parámetros

cookie
Puntero a un valor que identifica el objeto de clase cuyo registro se va a revocar.