ClassFactory Sınıfı

Arabirimin temel işlevselliğini IClassFactory uygular.

Sözdizimi

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

Parametreler

I0
Sıfırıncı arabirim.

I1
İlk arabirim.

I2
İkinci arabirim.

Açıklamalar

Kullanıcı tanımlı bir fabrika uygulaması sağlamak için kullanılır ClassFactory .

Aşağıdaki programlama düzeni, bir sınıf fabrikasında üçten fazla arabirim belirtmek için Implements yapısının nasıl kullanılacağını gösterir.

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

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
ClassFactory::ClassFactory

Genel Yöntemler

Veri Akışı Adı Açıklama
ClassFactory::AddRef Geçerli ClassFactory nesne için başvuru sayısını artırır.
ClassFactory::LockServer Geçerli ClassFactory nesne tarafından izlenen temel nesne sayısını artırır veya azaltma.
ClassFactory::QueryInterface parametresi tarafından belirtilen arabirime yönelik bir işaretçi alır.
ClassFactory::Release Geçerli ClassFactory nesne için başvuru sayısını azaltma.

Devralma Hiyerarşisi

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ClassFactory

Gereksinimler

Üst bilgi: module.h

Ad Alanı: Microsoft::WRL

ClassFactory::AddRef

Geçerli ClassFactory nesne için başvuru sayısını artırır.

STDMETHOD_(
   ULONG,
   AddRef
)();

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde, hatayı açıklayan bir HRESULT.

ClassFactory::ClassFactory

WRL_NOTHROW ClassFactory();

ClassFactory::LockServer

Geçerli ClassFactory nesne tarafından izlenen temel nesne sayısını artırır veya azaltma.

STDMETHOD(
   LockServer
)(BOOL fLock);

Parametreler

sürü
true izlenen nesne sayısını artırmak için. false izlenen nesnelerin sayısını azaltmaya yöneliktir.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde E_FAIL.

Açıklamalar

ClassFactory, Module sınıfının temel alınan bir örneğindeki nesneleri izler.

ClassFactory::QueryInterface

parametresi tarafından belirtilen arabirime yönelik bir işaretçi alır.

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

Parametreler

riid
Arabirim kimliği.

ppvObject
Bu işlem tamamlandığında, riid parametresi tarafından belirtilen arabirime yönelik bir işaretçi.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde, hatayı açıklayan bir HRESULT.

ClassFactory::Release

Geçerli ClassFactory nesne için başvuru sayısını azaltma.

STDMETHOD_(
   ULONG,
   Release
)();

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde, hatayı açıklayan bir HRESULT.