Compartir a través de


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.