RuntimeClass sınıfı

Belirtilen arabirimleri devralan ve belirtilen Windows Çalışma Zamanı, klasik COM ve zayıf başvuru desteği sağlayan bir WinRT veya COM sınıfını temsil eder.

Bu sınıf, WinRT ve COM sınıflarının ortak uygulamasını sağlar, , AddRefRelease vb. uygulamasını QueryInterfacesağlar, modülün başvuru sayısını yönetir ve eyleme geçirilebilir nesneler için sınıf fabrikası sağlama desteğine sahiptir.

Sözdizimi

template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;

Parametreler

classFlags
İsteğe bağlı parametre. Bir veya daha fazla RuntimeClassType numaralandırma değerinin birleşimi. Makro, __WRL_CONFIGURATION_LEGACY__ projedeki tüm çalışma zamanı sınıfları için varsayılan değerini classFlags değiştirmek üzere tanımlanabilir. Tanımlanırsa, RuntimeClass örnekler varsayılan olarak çevik değillerdir. Tanımlanmadığında, RuntimeClass örnekler varsayılan olarak çeviktir. Belirsizliği önlemek için, her zaman veya RuntimeClassType::InhibitFtmBasedeğerini TInterfaces belirtinMicrosoft::WRL::FtmBase. ve FtmBase her ikisi de kullanılırsaInhibitFtmBase, nesne çevik olur.

TInterfaces
nesnesinin dışında IUnknownIInspectable uyguladığı arabirimlerin listesi veya tarafından RuntimeClassTypedenetlenen diğer arabirimler. Ayrıca, Microsoft::WRL::FtmBase özellikle nesnesini çevik hale getirmek ve uygulamasına IMarshalneden olmak için, türetilecek diğer sınıfları listeleyebilir.

Üyeler

RuntimeClassInitialize
İşlev şablonu nesneyi oluşturmak için kullanılıyorsa MakeAndInitialize nesneyi başlatan işlev. Nesnenin başarıyla başlatılıp başlatılmadığını veya başlatma başarısız olursa COM hata kodunu döndürür S_OK . COM hata kodu, dönüş değeri MakeAndInitializeolarak yayılır. RuntimeClassInitialize İşlev şablonu nesneyi oluşturmak için kullanılırsa Make yöntemi çağrılmaz.

Ortak Oluşturucular

Veri Akışı Adı Açıklama
RuntimeClass::RuntimeClass Sınıfının geçerli örneğini RuntimeClass başlatır.
RuntimeClass::~RuntimeClass Sınıfın geçerli örneğini RuntimeClass başlatır.

Genel Yöntemler

Veri Akışı Adı Açıklama
RuntimeClass::AddRef Geçerli RuntimeClass nesne için başvuru sayısını artırır.
RuntimeClass::DecrementReference Geçerli RuntimeClass nesne için başvuru sayısını azaltma.
RuntimeClass::GetIids Geçerli RuntimeClass nesne tarafından uygulanan arabirim kimliklerini içerebilen bir dizi alır.
RuntimeClass::GetRuntimeClassName Geçerli RuntimeClass nesnenin çalışma zamanı sınıf adını alır.
RuntimeClass::GetTrustLevel Geçerli RuntimeClass nesnenin güven düzeyini alır.
RuntimeClass::GetWeakReference Geçerli RuntimeClass nesnenin zayıf başvuru nesnesine yönelik bir işaretçi alır.
RuntimeClass::InternalAddRef Başvuru sayısını geçerli RuntimeClass nesneye artırır.
RuntimeClass::QueryInterface Belirtilen arabirim kimliğine yönelik bir işaretçi alır.
RuntimeClass::Release Geçerli RuntimeClass nesne üzerinde bir COM Yayın işlemi gerçekleştirir.

Devralma Hiyerarşisi

Hiyerarşi bir uygulama ayrıntısıdır.

Gereksinimler

Üst bilgi: implements.h

Ad alanı: Microsoft::WRL

RuntimeClass::~RuntimeClass

Sınıfın geçerli örneğini RuntimeClass başlatır.

virtual ~RuntimeClass();

RuntimeClass::AddRef

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

STDMETHOD_(
   ULONG,
   AddRef
)();

Dönüş değeri

S_OK başarılı olursa; aksi takdirde, hatayı gösteren bir HRESULT .

RuntimeClass::DecrementReference

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

ULONG DecrementReference();

Dönüş değeri

S_OK başarılı olursa; aksi takdirde, hatayı gösteren bir HRESULT .

RuntimeClass::GetIids

Geçerli RuntimeClass nesne tarafından uygulanan arabirim kimliklerini içerebilen bir dizi alır.

STDMETHOD(
   GetIids
)
   (_Out_ ULONG *iidCount,
   _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

Parametreler

iidCount
Bu işlem tamamlandığında dizideki iidstoplam öğe sayısı.

iids
Bu işlem tamamlandığında, arabirim kimlikleri dizisine yönelik bir işaretçi.

Dönüş değeri

Başarılıysa S_OK, değilse E_OUTOFMEMORY.

RuntimeClass::GetRuntimeClassName

Geçerli RuntimeClass nesnenin çalışma zamanı sınıf adını alır.

STDMETHOD( GetRuntimeClassName )(
    _Out_ HSTRING* runtimeName
);

Parametreler

runtimeName
Bu işlem tamamlandığında çalışma zamanı sınıf adı.

Dönüş değeri

S_OK başarılı olursa; aksi takdirde, hatayı gösteren bir HRESULT .

Açıklamalar

Tanımlanmadıysa veya __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ tanımlanmadıysa __WRL_STRICT__ bir onay hatası görüntülenir.

RuntimeClass::GetTrustLevel

Geçerli RuntimeClass nesnenin güven düzeyini alır.

STDMETHOD(GetTrustLevel)(
    _Out_ TrustLevel* trustLvl
);

Parametreler

trustLvl
Bu işlem tamamlandığında, geçerli RuntimeClass nesnenin güven düzeyi.

Dönüş değeri

Her zaman S_OK.

Açıklamalar

Tanımlanmadıysa veya __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ tanımlanmadıysa __WRL_STRICT__ bir onay hatası görüntülenir.

RuntimeClass::GetWeakReference

Geçerli RuntimeClass nesnenin zayıf başvuru nesnesine yönelik bir işaretçi alır.

STDMETHOD(
   GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);

Parametreler

weakReference
Bu işlem tamamlandığında, zayıf başvuru nesnesine yönelik bir işaretçi.

Dönüş değeri

Her zaman S_OK.

RuntimeClass::InternalAddRef

Başvuru sayısını geçerli RuntimeClass nesneye artırır.

ULONG InternalAddRef();

Dönüş değeri

Elde edilen başvuru sayısı.

RuntimeClass::QueryInterface

Belirtilen arabirim kimliğine 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, parametresi tarafından riid belirtilen arabirime yönelik bir işaretçi.

Dönüş değeri

S_OK başarılı olursa; aksi takdirde, hatayı gösteren bir HRESULT .

RuntimeClass::Release

Geçerli RuntimeClass nesne üzerinde bir COM Yayın işlemi gerçekleştirir.

STDMETHOD_(
   ULONG,
   Release
)();

Dönüş değeri

S_OK başarılı olursa; aksi takdirde, hatayı gösteren bir HRESULT .

Açıklamalar

Başvuru sayısı sıfır olursa nesne RuntimeClass silinir.

RuntimeClass::RuntimeClass

Sınıfının geçerli örneğini RuntimeClass başlatır.

RuntimeClass();