Udostępnij za pośrednictwem


ClassFactory — Klasa

Implementuje podstawowe funkcje interfejsu IClassFactory .

Składnia

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

Parametry

I0
Interfejs zeroth.

I1
Pierwszy interfejs.

I2
Drugi interfejs.

Uwagi

Skorzystaj z ClassFactory funkcji , aby zapewnić implementację fabryki zdefiniowaną przez użytkownika.

Poniższy wzorzec programowania pokazuje, jak za pomocą struktury Implements określić więcej niż trzy interfejsy w fabryce klas.

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

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
ClassFactory::ClassFactory

Metody publiczne

Nazwa/nazwisko opis
ClassFactory::AddRef Zwiększa liczbę odwołań dla bieżącego ClassFactory obiektu.
ClassFactory::LockServer Zwiększa lub dekrementuje liczbę obiektów bazowych śledzonych przez bieżący ClassFactory obiekt.
ClassFactory::QueryInterface Pobiera wskaźnik do interfejsu określonego przez parametr.
ClassFactory::Release Dekrementuje liczbę odwołań dla bieżącego ClassFactory obiektu.

Hierarchia dziedziczenia

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ClassFactory

Wymagania

Nagłówek: module.h

Przestrzeń nazw: Microsoft::WRL

ClassFactory::AddRef

Zwiększa liczbę odwołań dla bieżącego ClassFactory obiektu.

STDMETHOD_(
   ULONG,
   AddRef
)();

Wartość zwracana

S_OK w przypadku powodzenia; w przeciwnym razie HRESULT opisujący błąd.

ClassFactory::ClassFactory

WRL_NOTHROW ClassFactory();

ClassFactory::LockServer

Zwiększa lub dekrementuje liczbę obiektów bazowych śledzonych przez bieżący ClassFactory obiekt.

STDMETHOD(
   LockServer
)(BOOL fLock);

Parametry

Stado
true zwiększa liczbę śledzonych obiektów. false aby zdekrementować liczbę śledzonych obiektów.

Wartość zwracana

S_OK w przypadku powodzenia; w przeciwnym razie E_FAIL.

Uwagi

ClassFactory śledzi obiekty w bazowym wystąpieniu klasy Module .

ClassFactory::QueryInterface

Pobiera wskaźnik do interfejsu określonego przez parametr.

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

Parametry

Riid
Identyfikator interfejsu.

ppvObject
Po zakończeniu tej operacji wskaźnik do interfejsu określonego przez parametr riid.

Wartość zwracana

S_OK w przypadku powodzenia; w przeciwnym razie HRESULT opisujący błąd.

ClassFactory::Release

Dekrementuje liczbę odwołań dla bieżącego ClassFactory obiektu.

STDMETHOD_(
   ULONG,
   Release
)();

Wartość zwracana

S_OK w przypadku powodzenia; w przeciwnym razie HRESULT opisujący błąd.