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.