Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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_containedakhir . |
| 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
CComAggObjectmengimplementasikan 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 ><containedbaru 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