ClassFactory (clase)
Implementa la funcionalidad básica de la interfaz IClassFactory
.
Sintaxis
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
La interfaz cero.
I1
La primera interfaz.
I2
La segunda interfaz.
Comentarios
Use ClassFactory
para proporcionar una implementación de fábrica definida por el usuario.
El siguiente patrón de programación muestra cómo usar la estructura Implements para especificar más de tres interfaces en un generador de clases.
struct MyFactory : ClassFactory<Implements<I1, I2, I3>, I4, I5>
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
ClassFactory::ClassFactory |
Métodos públicos
Nombre | Descripción |
---|---|
ClassFactory::AddRef | Incrementa el recuento de referencias del objeto ClassFactory actual. |
ClassFactory::LockServer | Incrementa o disminuye el número de objetos subyacentes cuyo seguimiento realiza el objeto actual ClassFactory . |
ClassFactory::QueryInterface | Recupera un puntero en la interfaz especificada por el parámetro. |
ClassFactory::Release | Disminuye el recuento de referencias del objeto ClassFactory actual. |
Jerarquía de herencia
I0
ChainInterfaces
I0
RuntimeClassBase
ImplementsHelper
DontUseNewUseMake
RuntimeClassFlags
RuntimeClassBaseT
RuntimeClass
ClassFactory
Requisitos
Encabezado: module.h
Espacio de nombres: Microsoft::WRL
ClassFactory::AddRef
Incrementa el recuento de referencias del objeto ClassFactory
actual.
STDMETHOD_(
ULONG,
AddRef
)();
Valor devuelto
S_OK si se realiza correctamente; de lo contrario, un HRESULT que describe el error.
ClassFactory::ClassFactory
WRL_NOTHROW ClassFactory();
ClassFactory::LockServer
Incrementa o disminuye el número de objetos subyacentes cuyo seguimiento realiza el objeto actual ClassFactory
.
STDMETHOD(
LockServer
)(BOOL fLock);
Parámetros
fLock
true
para incrementar el número de objetos a los que se realiza seguimiento. false
para reducir el número de objetos a los que se realiza seguimiento.
Valor devuelto
S_OK si es correcto; de lo contrario, E_FAIL.
Comentarios
ClassFactory
realiza un seguimiento de los objetos de una instancia subyacente de la clase Module.
ClassFactory::QueryInterface
Recupera un puntero en la interfaz especificada por el parámetro.
STDMETHOD(
QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);
Parámetros
riid
Id. de interfaz.
ppvObject
Cuando se completa esta operación, un puntero a la interfaz especificada por el parámetro riid.
Valor devuelto
S_OK si se realiza correctamente; de lo contrario, un HRESULT que describe el error.
ClassFactory::Release
Disminuye el recuento de referencias del objeto ClassFactory
actual.
STDMETHOD_(
ULONG,
Release
)();
Valor devuelto
S_OK si se realiza correctamente; de lo contrario, un HRESULT que describe el error.