Classe ClassFactory
Implementa a funcionalidade básica da interface IClassFactory
.
Sintaxe
template <
typename I0 = Details::Nil,
typename I1 = Details::Nil,
typename I2 = Details::Nil
>
class ClassFactory :
public Details::RuntimeClass<
typename Details::InterfaceListHelper<
IClassFactory,
I0,
I1,
I2,
Details::Nil
>::TypeT,
RuntimeClassFlags<ClassicCom | InhibitWeakReference>,
false
>;
Parâmetros
I0
A interface do ordinal zero.
I1
A primeira interface.
I2
A segunda interface.
Comentários
Utilize ClassFactory
para fornecer uma implementação de fábrica definida pelo usuário.
O padrão de programação a seguir demonstra como usar a estrutura Implements para especificar mais de três interfaces em uma fábrica de classes.
struct MyFactory : ClassFactory<Implements<I1, I2, I3>, I4, I5>
Membros
Construtores públicos
Nome | Descrição |
---|---|
ClassFactory::ClassFactory |
Métodos públicos
Nome | Descrição |
---|---|
ClassFactory::AddRef | Incrementa a contagem de referência para o objeto ClassFactory atual. |
ClassFactory::LockServer | Incrementa ou diminui o número de objetos subjacentes que são rastreados pelo objeto ClassFactory atual. |
ClassFactory::QueryInterface | Recupera um ponteiro para a interface especificada por parâmetro. |
ClassFactory::Release | Diminui a contagem de referência para o objeto ClassFactory atual. |
Hierarquia de herança
I0
ChainInterfaces
I0
RuntimeClassBase
ImplementsHelper
DontUseNewUseMake
RuntimeClassFlags
RuntimeClassBaseT
RuntimeClass
ClassFactory
Requisitos
Cabeçalho: module.h
Namespace: Microsoft::WRL
ClassFactory::AddRef
Incrementa a contagem de referência para o objeto ClassFactory
atual.
STDMETHOD_(
ULONG,
AddRef
)();
Valor de retorno
S_OK se tiver êxito; caso contrário, um HRESULT que descreve a falha.
ClassFactory::ClassFactory
WRL_NOTHROW ClassFactory();
ClassFactory::LockServer
Incrementa ou diminui o número de objetos subjacentes que são rastreados pelo objeto ClassFactory
atual.
STDMETHOD(
LockServer
)(BOOL fLock);
Parâmetros
fLock
true
para incrementar o número de objetos rastreados. false
para diminuir o número de objetos rastreados.
Valor de retorno
S_OK se bem-sucedido; caso contrário, E_FAIL.
Comentários
ClassFactory
mantém o controle de objetos em uma instância subjacente da classe Module.
ClassFactory::QueryInterface
Recupera um ponteiro para a interface especificada por parâmetro.
STDMETHOD(
QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);
Parâmetros
riid
Um ID de interface.
ppvObject
Quando essa operação for concluída, um ponteiro para a interface especificada pelo parâmetro riid.
Valor de retorno
S_OK se tiver êxito; caso contrário, um HRESULT que descreve a falha.
ClassFactory::Release
Diminui a contagem de referência para o objeto ClassFactory
atual.
STDMETHOD_(
ULONG,
Release
)();
Valor de retorno
S_OK se tiver êxito; caso contrário, um HRESULT que descreve a falha.