Compartilhar via


Classe de módulo

Representa uma coleção de objetos relacionados.

Sintaxe

template<ModuleType moduleType>
class Module;

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

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

Parâmetros

moduleType
Uma combinação de um ou mais valores de enumeração ModuleType.

Membros

Classes protegidas

Nome Descrição
Module::GenericReleaseNotifier Invoca um manipulador de eventos quando o último objeto no módulo atual é liberado. O manipulador de eventos é especificado por um lambda, functor ou ponteiro para função.
Module::MethodReleaseNotifier Invoca um manipulador de eventos quando o último objeto no módulo atual é liberado. O manipulador de eventos é especificado por um objeto e o respectivo membro ponteiro para um método.
Module::ReleaseNotifier Invoca um manipulador de eventos quando o último objeto em um módulo é liberado.

Construtores públicos

Nome Descrição
Module::~Module Desinicializa a instância atual da classe Module.

Construtores Protegidos

Nome Descrição
Module::Module Inicializa uma nova instância da classe Module.

Métodos públicos

Nome Descrição
Module::Create Cria uma instância de um módulo.
Module::DecrementObjectCount Diminui o número de objetos rastreados pelo módulo.
Module::GetActivationFactory Obtém uma fábrica de ativação para o módulo.
Module::GetClassObject Recupera um cache de fábricas de classe.
Module::GetModule Cria uma instância de um módulo.
Module::GetObjectCount Recupera o número de objetos gerenciados por este módulo.
Module::IncrementObjectCount Aumenta o número de objetos rastreados pelo módulo.
Module::RegisterCOMObject Registra um ou mais objetos COM para que outros aplicativos possam se conectar a eles.
Module::RegisterObjects Registra objetos COM ou do Windows Runtime para que outros aplicativos possam se conectar a eles.
Module::RegisterWinRTObject Registra um ou mais objetos do Windows Runtime para que outros aplicativos possam se conectar a eles.
Module::Terminate Faz com que todas as fábricas instanciadas pelo módulo sejam desligadas.
Module::UnregisterCOMObject Cancela o registro de um ou mais objetos COM, o que impede que outros aplicativos se conectem a eles.
Module::UnregisterObjects Cancela o registro dos objetos no módulo especificado, de modo que outros aplicativos não possam se conectar a eles.
Module::UnregisterWinRTObject Cancela o registro de um ou mais objetos do Windows Runtime de modo que outros aplicativos não possam se conectar a eles.

Métodos protegidos

Nome Descrição
Module::Create Cria uma instância de um módulo.

Membros de dados protegidos

Nome Descrição
Module::objectCount_ Controla quantas classes foram criadas com a função Make.
Module::releaseNotifier_ Contém um ponteiro para um objeto ReleaseNotifier.

Macros

Nome Descrição
Classe ativável Popula um cache interno que contém uma fábrica que pode criar uma instância da classe especificada. Essa macro especifica parâmetros padrão de fábrica e de ID de grupo.
ActivatableClassWithFactory Popula um cache interno que contém uma fábrica que pode criar uma instância da classe especificada. Essa macro permite que você especifique um parâmetro de fábrica específico.
ActivatableClassWithFactoryEx Popula um cache interno que contém uma fábrica que pode criar uma instância da classe especificada. Essa macro permite que você especifique parâmetros específicos de fábrica e de ID de grupo.

Hierarquia de herança

ModuleBase

Module

Module

Requisitos

Cabeçalho: module.h

Namespace: Microsoft::WRL

Module::~Module

Desinicializa a instância atual da classe Module.

virtual ~Module();

Module::Create

Cria uma instância de um 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
Chamado quando o objeto da última instância do módulo é liberado.

object
Os parâmetros object e method são usados em combinação. Aponta para o objeto da última instância quando o objeto da última instância no módulo é liberado.

method
Os parâmetros object e method são usados em combinação. Aponta para o método do objeto da última instância quando o objeto da última instância no módulo é liberado.

Valor de retorno

Referência ao módulo.

Module::DecrementObjectCount

Diminui o número de objetos rastreados pelo módulo.

virtual long DecrementObjectCount();

Valor de retorno

A contagem antes da operação de diminuição.

Module::GetActivationFactory

Obtém uma fábrica de ativação para o módulo.

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

Parâmetros

pActivatibleClassId
IID de uma classe de runtime.

ppIFactory
O IActivationFactory para a classe de runtime especificada.

serverName
O nome de um subconjunto de fábricas de classe no módulo atual. Especifique o nome do servidor usado na macro ActivatableClassWithFactoryEx ou especifique nullptr para obter o nome do servidor padrão.

Valor de retorno

S_OK se tiver êxito; caso contrário, o HRESULT retornado por GetActivationFactory.

Module::GetClassObject

Recupera um cache de fábricas de classe.

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

Parâmetros

clsid
ID da classe.

riid
ID da interface que você solicita.

ppv
Ponteiro para o objeto retornado.

serverName
O nome do servidor especificado na macro ActivatableClassWithFactory, ActivatableClassWithFactoryEx ou ActivatableClass; ou nullptr para obter o nome do servidor padrão.

Valor de retorno

Comentários

Use esse método somente para COM, não para o Windows Runtime. Esse método expõe apenas métodos IClassFactory.

Module::GetModule

Cria uma instância de um módulo.

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

Valor de retorno

Uma referência a um módulo.

Module::GetObjectCount

Recupera o número de objetos gerenciados por este módulo.

virtual long GetObjectCount() const;

Valor de retorno

O número atual de objetos gerenciados por este módulo.

Module::IncrementObjectCount

Aumenta o número de objetos rastreados pelo módulo.

virtual long IncrementObjectCount();

Valor de retorno

A contagem antes da operação de incremento.

Module::Module

Inicializa uma nova instância da classe Module.

Module();

Comentários

Esse construtor é protegido e não pode ser chamado com a palavra-chave new. Em vez disso, chame Module::GetModule ou Module::Create.

Module::objectCount_

Controla quantas classes foram criadas com a função Make.

volatile long objectCount_;

Module::RegisterCOMObject

Registra um ou mais objetos COM para que outros aplicativos possam se conectar a eles.

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

Parâmetros

serverName
Nome totalmente qualificado de um servidor.

clsids
Uma matriz de CLSIDs a serem registrados.

Fábricas
Uma matriz de interfaces IUnknown dos objetos de classe cuja disponibilidade está sendo publicada.

cookies
Quando a operação for concluída, uma matriz de ponteiros para valores que identificam os objetos de classe que foram registrados. Esses valores são usados posteriormente para revogar o registro.

count
O número de CLSIDs a serem registrados.

Valor de retorno

S_OK se for bem-sucedido; caso contrário, um HRESULT como CO_E_OBJISREG que indica o motivo pelo qual a operação falhou.

Comentários

Os objetos COM são registrados com o enumerador CLSCTX_LOCAL_SERVER da enumeração CLSCTX.

O tipo de conexão com os objetos registrados é especificado por uma combinação do parâmetro de modelo comflag atual e do enumerador REGCLS_SUSPENDED da enumeração REGCLS.

Module::RegisterObjects

Registra objetos COM ou do Windows Runtime para que outros aplicativos possam se conectar a eles.

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

Parâmetros

module
Uma matriz de objetos COM ou Windows Runtime.

serverName
Nome do servidor que criou os objetos.

Valor de retorno

S_OK se tiver êxito; caso contrário, um HRESULT que indica o motivo pelo qual a operação falhou.

Module::RegisterWinRTObject

Registra um ou mais objetos do Windows Runtime para que outros aplicativos possam se conectar a eles.

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

Parâmetros

serverName
Um nome que especifica um subconjunto de objetos afetados por essa operação.

activatableClassIds
Uma matriz de CLSIDs ativados a serem registrados.

cookie
Um valor que identifica os objetos de classe que foram registrados. Esse valor é usado posteriormente para revogar o registro.

count
O número de objetos a serem registrados.

Valor de retorno

S_OK se tiver êxito; caso contrário, um HRESULT de erro como CO_E_OBJISREG que indica o motivo pelo qual a operação falhou.

Module::releaseNotifier_

Contém um ponteiro para um objeto ReleaseNotifier.

ReleaseNotifier *releaseNotifier_;

Module::Terminate

Faz com que todas as fábricas instanciadas pelo módulo sejam desligadas.

void Terminate();

Comentários

Libera as fábricas no cache.

Module::UnregisterCOMObject

Cancela o registro de um ou mais objetos COM, o que impede que outros aplicativos se conectem a eles.

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

Parâmetros

serverName
(Não usado)

cookies
Uma matriz de ponteiros para valores que identificam os objetos de classe cujos registros devem ser cancelados. A matriz foi criada pelo método RegisterCOMObject.

count
O número de classes cujo registro deve ser cancelado.

Valor de retorno

S_OK se essa operação tiver êxito; caso contrário, um HRESULT de erro que indica o motivo pelo qual a operação falhou.

Module::UnregisterObjects

Cancela o registro dos objetos no módulo especificado, de modo que outros aplicativos não possam se conectar a eles.

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

Parâmetros

module
Ponteiro para um módulo.

serverName
Um nome de qualificação que especifica um subconjunto de objetos afetados por essa operação.

Valor de retorno

S_OK se essa operação for bem-sucedida; caso contrário, um HRESULT de erro que indica o motivo pelo qual essa operação falhou.

Module::UnregisterWinRTObject

Cancela o registro de um ou mais objetos do Windows Runtime de modo que outros aplicativos não possam se conectar a eles.

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

Parâmetros

cookie
Um ponteiro para um valor que identifica o objeto de classe cujo registro deve ser revogado.