Kelas CComAggObject
Kelas ini mengimplementasikan antarmuka IUnknown untuk objek agregat. Menurut definisi, objek agregat terkandung dalam objek luar. Kelas CComAggObject
ini mirip dengan Kelas CComObject, kecuali bahwa kelas tersebut mengekspos antarmuka yang dapat diakses langsung oleh klien eksternal.
Sintaks
template<class contained>
class CComAggObject : public IUnknown,
public CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>
Parameter
Terkandung
Kelas Anda, berasal dari CComObjectRoot atau CComObjectRootEx, serta dari antarmuka lain yang ingin Anda dukung pada objek.
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CComAggObject::CComAggObject | Konstruktor. |
CComAggObject::~CComAggObject | Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CComAggObject::AddRef | Menaikkan jumlah referensi pada objek agregat. |
CComAggObject::CreateInstance | Fungsi statis ini memungkinkan Anda membuat objek CComAggObject ><contained baru tanpa overhead CoCreateInstance. |
CComAggObject::FinalConstruct | Melakukan inisialisasi akhir .m_contained |
CComAggObject::FinalRelease | Melakukan penghancuran m_contained akhir . |
CComAggObject::QueryInterface | Mengambil penunjuk ke antarmuka yang diminta. |
CComAggObject::Release | Mengurangi jumlah referensi pada objek agregat. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CComAggObject::m_contained | Mendelegasikan IUnknown panggilan ke luar tidak diketahui. |
Keterangan
CComAggObject
mengimplementasikan IUnknown untuk objek agregat. CComAggObject
memiliki antarmukanya sendiri IUnknown
, terpisah dari antarmuka objek IUnknown
luar, dan mempertahankan jumlah referensinya sendiri.
Untuk informasi selengkapnya tentang agregasi, lihat artikel Dasar-Dasar Objek COM ATL.
Hierarki Warisan
CComObjectRootBase
IUnknown
CComAggObject
Persyaratan
Header: atlcom.h
CComAggObject::AddRef
Menaikkan jumlah referensi pada objek agregat.
STDMETHOD_(ULONG, AddRef)();
Tampilkan Nilai
Nilai yang mungkin berguna untuk diagnostik atau pengujian.
CComAggObject::CComAggObject
Konstruktor.
CComAggObject(void* pv);
Parameter
Pv
[di] Bagian luar tidak diketahui.
Keterangan
Menginisialisasi CComContainedObject
anggota, m_contained, dan menaikkan jumlah kunci modul.
Destruktor mengurangi jumlah kunci modul.
CComAggObject::~CComAggObject
Destruktor.
~CComAggObject();
Keterangan
Membebaskan semua sumber daya yang dialokasikan, memanggil FinalRelease, dan mengurangi jumlah kunci modul.
CComAggObject::CreateInstance
Fungsi statis ini memungkinkan Anda membuat objek CComAggObject ><contained
baru tanpa overhead CoCreateInstance.
static HRESULT WINAPI CreateInstance(
LPUNKNOWN pUnkOuter,
CComAggObject<contained>** pp);
Parameter
Pp
[out] Penunjuk ke pointer berisi> CComAggObject<. Jika CreateInstance
tidak berhasil, pp diatur ke NULL.
Tampilkan Nilai
Nilai HRESULT standar.
Keterangan
Objek yang dikembalikan memiliki jumlah referensi nol, jadi segera panggil AddRef
, lalu gunakan Release
untuk membebaskan referensi pada penunjuk objek setelah Anda selesai.
Jika Anda tidak memerlukan akses langsung ke objek, tetapi masih ingin membuat objek baru tanpa overhead CoCreateInstance
, gunakan CComCoClass::CreateInstance sebagai gantinya.
CComAggObject::FinalConstruct
Dipanggil selama tahap akhir konstruksi objek, metode ini melakukan inisialisasi akhir pada anggota m_contained .
HRESULT FinalConstruct();
Tampilkan Nilai
Nilai HRESULT standar.
CComAggObject::FinalRelease
Dipanggil selama penghancuran objek, metode ini membebaskan anggota m_contained .
void FinalRelease();
CComAggObject::m_contained
Objek CComContainedObject berasal dari kelas Anda.
CComContainedObject<contained> m_contained;
Parameter
Terkandung
[di] Kelas Anda, berasal dari CComObjectRoot atau CComObjectRootEx, serta dari antarmuka lain yang ingin Anda dukung pada objek.
Keterangan
Semua IUnknown
panggilan melalui m_contained
didelegasikan ke luar yang tidak diketahui.
CComAggObject::QueryInterface
Mengambil penunjuk ke antarmuka yang diminta.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);
Parameter
iid
[di] Pengidentifikasi antarmuka yang diminta.
ppvObject
[out] Penunjuk ke penunjuk antarmuka yang diidentifikasi oleh iid. Jika objek tidak mendukung antarmuka ini, ppvObject diatur ke NULL.
Pp
[out] Penunjuk ke penunjuk antarmuka yang diidentifikasi berdasarkan jenis Q
. Jika objek tidak mendukung antarmuka ini, pp diatur ke NULL.
Tampilkan Nilai
Nilai HRESULT standar.
Keterangan
Jika antarmuka yang diminta adalah IUnknown
, QueryInterface
mengembalikan penunjuk ke objek agregat sendiri IUnknown
dan menaikkan jumlah referensi. Jika tidak, metode ini meminta antarmuka melalui CComContainedObject
anggota, m_contained.
CComAggObject::Release
Mengurangi jumlah referensi pada objek agregat.
STDMETHOD_(ULONG, Release)();
Tampilkan Nilai
Dalam build debug, Release
mengembalikan nilai yang mungkin berguna untuk diagnostik atau pengujian. Dalam build non-debug, Release
selalu mengembalikan 0.
Lihat juga
Kelas CComObject
Kelas CComPolyObject
DECLARE_AGGREGATABLE
DECLARE_ONLY_AGGREGATABLE
DECLARE_NOT_AGGREGATABLE
Gambaran Umum Kelas