Condividi tramite


ClassFactory (classe)

Implementa le funzionalità di base di un'interfaccia IClassFactory.

Sintassi

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
    >;

Parametri

I0
Interfaccia zeroth.

I1
Prima interfaccia.

I2
Seconda interfaccia.

Osservazioni:

Utilizzare ClassFactory per fornire un'implementazione della factory definita dall'utente.

Il modello di programmazione seguente illustra come usare la struttura Implements per specificare più di tre interfacce in una class factory.

struct MyFactory : ClassFactory<Implements<I1, I2, I3>, I4, I5>

Membri

Costruttori pubblici

Nome Descrizione
ClassFactory::ClassFactory

Metodi pubblici

Nome Descrizione
ClassFactory::AddRef Incrementa il conteggio dei riferimenti per l'oggetto corrente ClassFactory .
ClassFactory::LockServer Incrementa o decrementa il numero di oggetti sottostanti rilevati dall'oggetto corrente ClassFactory .
ClassFactory::QueryInterface Recupera un puntatore all'interfaccia specificata dal parametro .
ClassFactory::Release Decrementa il conteggio dei riferimenti per l'oggetto corrente ClassFactory .

Gerarchia di ereditarietà

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ClassFactory

Requisiti

Intestazione: module.h

Spazio dei nomi: Microsoft::WRL

ClassFactory::AddRef

Incrementa il conteggio dei riferimenti per l'oggetto corrente ClassFactory .

STDMETHOD_(
   ULONG,
   AddRef
)();

Valore restituito

S_OK se riesce; in caso contrario, HRESULT che descrive l'errore.

ClassFactory::ClassFactory

WRL_NOTHROW ClassFactory();

ClassFactory::LockServer

Incrementa o decrementa il numero di oggetti sottostanti rilevati dall'oggetto corrente ClassFactory .

STDMETHOD(
   LockServer
)(BOOL fLock);

Parametri

Gregge
true per incrementare il numero di oggetti rilevati. false per decrementare il numero di oggetti rilevati.

Valore restituito

S_OK se ha esito positivo; in caso contrario, E_FAIL.

Osservazioni:

ClassFactory tiene traccia degli oggetti in un'istanza sottostante della classe Module .

ClassFactory::QueryInterface

Recupera un puntatore all'interfaccia specificata dal parametro .

STDMETHOD(
   QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);

Parametri

riid
ID di interfaccia.

ppvObject
Al termine di questa operazione, un puntatore all'interfaccia specificata dal parametro riid.

Valore restituito

S_OK se riesce; in caso contrario, HRESULT che descrive l'errore.

ClassFactory::Release

Decrementa il conteggio dei riferimenti per l'oggetto corrente ClassFactory .

STDMETHOD_(
   ULONG,
   Release
)();

Valore restituito

S_OK se riesce; in caso contrario, HRESULT che descrive l'errore.