RuntimeClass
kelas
Mewakili kelas WinRT atau COM yang mewarisi antarmuka yang ditentukan dan menyediakan Windows Runtime, COM klasik, dan dukungan referensi yang lemah yang ditentukan.
Kelas ini menyediakan implementasi boilerplate kelas WinRT dan COM, menyediakan implementasi QueryInterface
, AddRef
, Release
dll., mengelola jumlah referensi modul dan memiliki dukungan untuk menyediakan pabrik kelas untuk objek yang dapat diaktifkan.
Sintaks
template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;
Parameter
classFlags
Parameter opsional. Kombinasi satu atau beberapa RuntimeClassType
nilai enumerasi. __WRL_CONFIGURATION_LEGACY__
Makro dapat didefinisikan untuk mengubah nilai classFlags
default untuk semua kelas runtime dalam proyek. Jika ditentukan, RuntimeClass
instans tidak tangkas secara default. Ketika tidak ditentukan, RuntimeClass
instans tangkas secara default. Untuk menghindari ambiguitas, selalu tentukan Microsoft::WRL::FtmBase
di TInterfaces
atau RuntimeClassType::InhibitFtmBase
. Jika InhibitFtmBase
dan FtmBase
keduanya digunakan, objek akan tangkas.
TInterfaces
Daftar antarmuka yang diterapkan objek di luar IUnknown
, IInspectable
atau antarmuka lain yang dikontrol oleh RuntimeClassType
. Ini juga dapat mencantumkan kelas lain yang berasal dari, terutama Microsoft::WRL::FtmBase
untuk membuat objek gesar dan menyebabkannya mengimplementasikan IMarshal
.
Anggota
RuntimeClassInitialize
Fungsi yang menginisialisasi objek jika MakeAndInitialize
templat fungsi digunakan untuk membuat objek. Ini mengembalikan jika objek berhasil diinisialisasi, atau kode kesalahan COM jika inisialisasi S_OK
gagal. Kode kesalahan COM disebarluaskan sebagai nilai pengembalian .MakeAndInitialize
Metode RuntimeClassInitialize
ini tidak dipanggil jika Make
templat fungsi digunakan untuk membuat objek.
Konstruktor Publik
Nama | Deskripsi |
---|---|
RuntimeClass::RuntimeClass |
Menginisialisasi instans RuntimeClass kelas saat ini. |
RuntimeClass::~RuntimeClass |
Mendeinisialisasi instans RuntimeClass kelas saat ini. |
Metode Publik
Nama | Deskripsi |
---|---|
RuntimeClass::AddRef |
Menaikkan jumlah referensi untuk objek saat ini RuntimeClass . |
RuntimeClass::DecrementReference |
Mengurangi jumlah referensi untuk objek saat ini RuntimeClass . |
RuntimeClass::GetIids |
Mendapatkan array yang dapat berisi ID antarmuka yang diimplementasikan oleh objek saat ini RuntimeClass . |
RuntimeClass::GetRuntimeClassName |
Mendapatkan nama kelas runtime objek saat ini RuntimeClass . |
RuntimeClass::GetTrustLevel |
Mendapatkan tingkat kepercayaan objek saat ini RuntimeClass . |
RuntimeClass::GetWeakReference |
Mendapatkan penunjuk ke objek referensi yang lemah untuk objek saat ini RuntimeClass . |
RuntimeClass::InternalAddRef |
Menaikkan jumlah referensi ke objek saat ini RuntimeClass . |
RuntimeClass::QueryInterface |
Mengambil penunjuk ke ID antarmuka yang ditentukan. |
RuntimeClass::Release |
Melakukan operasi Rilis COM pada objek saat ini RuntimeClass . |
Hierarki Warisan
Hierarki adalah detail implementasi.
Persyaratan
Header: implements.h
kumpulan nama XML: Microsoft::WRL
RuntimeClass::~RuntimeClass
Mendeinisialisasi instans RuntimeClass
kelas saat ini.
virtual ~RuntimeClass();
RuntimeClass::AddRef
Menaikkan jumlah referensi untuk objek saat ini RuntimeClass
.
STDMETHOD_(
ULONG,
AddRef
)();
Nilai hasil
S_OK
jika berhasil; jika tidak, yang HRESULT
menunjukkan kesalahan.
RuntimeClass::DecrementReference
Mengurangi jumlah referensi untuk objek saat ini RuntimeClass
.
ULONG DecrementReference();
Nilai hasil
S_OK
jika berhasil; jika tidak, yang HRESULT
menunjukkan kesalahan.
RuntimeClass::GetIids
Mendapatkan array yang dapat berisi ID antarmuka yang diimplementasikan oleh objek saat ini RuntimeClass
.
STDMETHOD(
GetIids
)
(_Out_ ULONG *iidCount,
_Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);
Parameter
iidCount
Ketika operasi ini selesai, jumlah total elemen dalam array iids
.
iids
Ketika operasi ini selesai, penunjuk ke array ID antarmuka.
Nilai hasil
S_OK
jika berhasil; jika tidak, E_OUTOFMEMORY
.
RuntimeClass::GetRuntimeClassName
Mendapatkan nama kelas runtime objek saat ini RuntimeClass
.
STDMETHOD( GetRuntimeClassName )(
_Out_ HSTRING* runtimeName
);
Parameter
runtimeName
Ketika operasi ini selesai, nama kelas runtime.
Nilai hasil
S_OK
jika berhasil; jika tidak, yang HRESULT
menunjukkan kesalahan.
Keterangan
Kesalahan pernyataan dipancarkan jika __WRL_STRICT__
atau __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
tidak ditentukan.
RuntimeClass::GetTrustLevel
Mendapatkan tingkat kepercayaan objek saat ini RuntimeClass
.
STDMETHOD(GetTrustLevel)(
_Out_ TrustLevel* trustLvl
);
Parameter
trustLvl
Ketika operasi ini selesai, tingkat kepercayaan objek saat ini RuntimeClass
.
Nilai hasil
Selalu S_OK
.
Keterangan
Kesalahan pernyataan dipancarkan jika __WRL_STRICT__
atau __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
tidak ditentukan.
RuntimeClass::GetWeakReference
Mendapatkan penunjuk ke objek referensi yang lemah untuk objek saat ini RuntimeClass
.
STDMETHOD(
GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);
Parameter
weakReference
Ketika operasi ini selesai, penunjuk ke objek referensi yang lemah.
Nilai hasil
Selalu S_OK
.
RuntimeClass::InternalAddRef
Menaikkan jumlah referensi ke objek saat ini RuntimeClass
.
ULONG InternalAddRef();
Nilai hasil
Jumlah referensi yang dihasilkan.
RuntimeClass::QueryInterface
Mengambil penunjuk ke ID antarmuka yang ditentukan.
STDMETHOD(
QueryInterface
)
(REFIID riid,
_Deref_out_ void **ppvObject);
Parameter
riid
ID antarmuka.
ppvObject
Ketika operasi ini selesai, penunjuk ke antarmuka yang ditentukan oleh riid
parameter .
Nilai hasil
S_OK
jika berhasil; jika tidak, yang HRESULT
menunjukkan kesalahan.
RuntimeClass::Release
Melakukan operasi Rilis COM pada objek saat ini RuntimeClass
.
STDMETHOD_(
ULONG,
Release
)();
Nilai hasil
S_OK
jika berhasil; jika tidak, yang HRESULT
menunjukkan kesalahan.
Keterangan
Jika jumlah referensi menjadi nol, RuntimeClass
objek akan dihapus.
RuntimeClass::RuntimeClass
Menginisialisasi instans RuntimeClass
kelas saat ini.
RuntimeClass();