CComPtrBase
Kelas
Kelas ini menyediakan dasar untuk kelas penunjuk cerdas menggunakan rutinitas memori berbasis COM.
Sintaks
template <class T>
class CComPtrBase
Parameter
T
Jenis objek yang akan dirujuk oleh penunjuk pintar.
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CComPtrBase::~CComPtrBase |
Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CComPtrBase::Advise |
Panggil metode ini untuk membuat koneksi antara CComPtrBase titik koneksi dan sink klien. |
CComPtrBase::Attach |
Panggil metode ini untuk mengambil kepemilikan pointer yang ada. |
CComPtrBase::CoCreateInstance |
Panggil metode ini untuk membuat objek kelas yang terkait dengan ID Kelas atau ID Program tertentu. |
CComPtrBase::CopyTo |
Panggil metode ini untuk menyalin pointer CComPtrBase ke variabel pointer lain. |
CComPtrBase::Detach |
Panggil metode ini untuk merilis kepemilikan pointer. |
CComPtrBase::IsEqualObject |
Panggil metode ini untuk memeriksa apakah poin yang ditentukan IUnknown ke objek yang sama yang terkait dengan CComPtrBase objek. |
CComPtrBase::QueryInterface |
Panggil metode ini untuk mengembalikan penunjuk ke antarmuka tertentu. |
CComPtrBase::Release |
Panggil metode ini untuk merilis antarmuka. |
CComPtrBase::SetSite |
Panggil metode ini untuk mengatur situs CComPtrBase objek ke IUnknown objek induk. |
Operator publik
Nama | Deskripsi |
---|---|
CComPtrBase::operator T* |
Operator cast. |
CComPtrBase::operator ! |
Operator NOT. |
CComPtrBase::operator & |
Alamat & operator. |
CComPtrBase::operator * |
Operator pointer-to * . |
CComPtrBase::operator < |
Operator kurang dari. |
CComPtrBase::operator == |
Operator kesetaraan. |
CComPtrBase::operator -> |
Operator pointer-to-members. |
Anggota data publik
Nama | Deskripsi |
---|---|
CComPtrBase::p |
Variabel anggota data pointer. |
Keterangan
Kelas ini memberikan dasar untuk penunjuk cerdas lain yang menggunakan rutinitas manajemen memori COM, seperti CComQIPtr
dan CComPtr
. Kelas turunan menambahkan konstruktor dan operator mereka sendiri, tetapi bergantung pada metode yang disediakan oleh CComPtrBase
.
Persyaratan
Header: atlcomcli.h
CComPtrBase::Advise
Panggil metode ini untuk membuat koneksi antara CComPtrBase
titik koneksi dan sink klien.
HRESULT Advise(
IUnknown* pUnk,
const IID& iid,
LPDWORD pdw) throw();
Parameter
pUnk
Penunjuk ke klien IUnknown
.
iid
GUID titik koneksi. Biasanya, GUID ini sama dengan antarmuka keluar yang dikelola oleh titik koneksi.
pdw
Penunjuk ke cookie yang secara unik mengidentifikasi koneksi.
Nilai hasil
Mengembalikan S_OK
keberhasilan, atau kesalahan HRESULT
saat gagal.
Keterangan
Untuk informasi selengkapnya, lihat AtlAdvise
.
CComPtrBase::Attach
Panggil metode ini untuk mengambil kepemilikan pointer yang ada.
void Attach(T* p2) throw();
Parameter
p2
Objek CComPtrBase
akan mengambil kepemilikan penunjuk ini.
Keterangan
Attach
CComPtrBase::Release
panggilan pada variabel anggota yang ada CComPtrBase::p
lalu menetapkan p2
ke CComPtrBase::p
. CComPtrBase
Ketika objek mengambil kepemilikan pointer, objek akan secara otomatis memanggil Release
penunjuk, yang menghapus pointer dan data yang dialokasikan jika jumlah referensi pada objek masuk ke 0.
CComPtrBase::~CComPtrBase
Destruktor.
~CComPtrBase() throw();
Keterangan
Merilis antarmuka yang ditujukkan oleh CComPtrBase
.
CComPtrBase::CoCreateInstance
Panggil metode ini untuk membuat objek kelas yang terkait dengan ID Kelas atau ID Program tertentu.
HRESULT CoCreateInstance(
LPCOLESTR szProgID,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
HRESULT CoCreateInstance(
REFCLSID rclsid,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
Parameter
szProgID
Pointer ke ProgID, digunakan untuk memulihkan CLSID.
pUnkOuter
Jika NULL, menunjukkan bahwa objek tidak dibuat sebagai bagian dari agregat. Jika non-NULL, adalah penunjuk ke antarmuka objek IUnknown
agregat (pengontrol IUnknown
).
dwClsContext
Konteks di mana kode yang mengelola objek yang baru dibuat akan berjalan.
rclsid
CLSID yang terkait dengan data dan kode yang akan digunakan untuk membuat objek.
Nilai hasil
Mengembalikan S_OK
keberhasilan, atau REGDB_E_CLASSNOTREG
, CLASS_E_NOAGGREGATION
, CO_E_CLASSSTRING
, atau E_NOINTERFACE
pada kegagalan. Lihat CoCreateClassInstance
dan CLSIDFromProgID
untuk deskripsi kesalahan ini.
Keterangan
Jika bentuk pertama metode dipanggil, CLSIDFromProgID
digunakan untuk memulihkan CLSID. Kedua formulir kemudian memanggil CoCreateClassInstance
.
Dalam build debug, kesalahan pernyataan akan terjadi jika CComPtrBase::p
tidak sama dengan NULL.
CComPtrBase::CopyTo
Panggil metode ini untuk menyalin pointer CComPtrBase
ke variabel pointer lain.
HRESULT CopyTo(T** ppT) throw();
Parameter
ppT
Alamat variabel untuk menerima penunjuk CComPtrBase
.
Nilai hasil
Mengembalikan S_OK
keberhasilan, E_POINTER
jika gagal.
Keterangan
Menyalin penunjuk CComPtrBase
ke ppT
. Jumlah referensi pada CComPtrBase::p
variabel anggota bertambah.
HRESULT
Kesalahan akan dikembalikan jika ppT
sama dengan NULL. Dalam build debug, kesalahan pernyataan akan terjadi jika ppT
sama dengan NULL.
CComPtrBase::Detach
Panggil metode ini untuk merilis kepemilikan pointer.
T* Detach() throw();
Nilai hasil
Mengembalikan salinan pointer.
Keterangan
Merilis kepemilikan pointer, mengatur CComPtrBase::p
variabel anggota data ke NULL, dan mengembalikan salinan pointer.
CComPtrBase::IsEqualObject
Panggil metode ini untuk memeriksa apakah poin yang ditentukan IUnknown
ke objek yang sama yang terkait dengan CComPtrBase
objek.
bool IsEqualObject(IUnknown* pOther) throw();
Parameter
pOther
untuk IUnknown *
membandingkan.
Nilai hasil
Mengembalikan true jika objek identik, false jika tidak.
CComPtrBase::operator !
Operator NOT.
bool operator!() const throw();
Nilai hasil
Mengembalikan true jika penunjuk CComHeapPtr
sama dengan NULL, salah jika tidak.
CComPtrBase::operator &
Alamat &
operator.
T** operator&() throw();
Nilai hasil
Mengembalikan alamat objek yang ditujukkan oleh CComPtrBase
objek.
CComPtrBase::operator *
Operator pointer-to *
.
T& operator*() const throw();
Nilai hasil
Mengembalikan nilai CComPtrBase::p
; yaitu, penunjuk ke objek yang dirujuk CComPtrBase
oleh objek.
Jika debug dibuat, kesalahan pernyataan akan terjadi jika CComPtrBase::p
tidak sama dengan NULL.
CComPtrBase::operator ==
Operator kesetaraan.
bool operator== (T* pT) const throw();
Parameter
pT
Penunjuk ke objek.
Nilai hasil
Mengembalikan true jika CComPtrBase
dan pT
menunjuk ke objek yang sama, jika tidak salah.
CComPtrBase::operator ->
Operator pointer-to-member.
_NoAddRefReleaseOnCComPtr<T>* operator->() const throw();
Nilai hasil
Mengembalikan nilai CComPtrBase::p
variabel anggota data.
Keterangan
Gunakan operator ini untuk memanggil metode di kelas yang diacu oleh CComPtrBase
objek. Dalam build debug, kegagalan pernyataan akan terjadi jika CComPtrBase
anggota data menunjuk ke NULL.
CComPtrBase::operator <
Operator kurang dari.
bool operator<(T* pT) const throw();
Parameter
pT
Penunjuk ke objek.
Nilai hasil
Mengembalikan true jika penunjuk yang dikelola oleh objek saat ini kurang dari penunjuk yang sedang dibandingkan.
CComPtrBase::operator T*
Operator cast.
operator T*() const throw();
Keterangan
Mengembalikan penunjuk ke jenis data objek yang ditentukan dalam templat kelas.
CComPtrBase::p
Variabel anggota data pointer.
T* p;
Keterangan
Variabel anggota ini menyimpan informasi pointer.
CComPtrBase::QueryInterface
Panggil metode ini untuk mengembalikan penunjuk ke antarmuka tertentu.
template <class Q> HRESULT QueryInterface(Q
** pp) const throw();
Parameter
Q
Jenis objek yang penunjuk antarmukanya diperlukan.
pp
Alamat variabel output yang menerima penunjuk antarmuka yang diminta.
Nilai hasil
Mengembalikan S_OK
keberhasilan, atau E_NOINTERFACE
gagal.
Keterangan
Metode ini memanggil IUnknown::QueryInterface
.
Dalam build debug, kesalahan pernyataan akan terjadi jika pp
tidak sama dengan NULL.
CComPtrBase::Release
Panggil metode ini untuk merilis antarmuka.
void Release() throw();
Keterangan
Antarmuka dirilis, dan CComPtrBase::p
diatur ke NULL.
CComPtrBase::SetSite
Panggil metode ini untuk mengatur situs CComPtrBase
objek ke IUnknown
objek induk.
HRESULT SetSite(IUnknown* punkParent) throw();
Parameter
punkParent
Penunjuk ke IUnknown
antarmuka induk.
Nilai hasil
Mengembalikan S_OK
keberhasilan, atau kesalahan HRESULT
saat gagal.
Keterangan
Metode ini memanggil AtlSetChildSite
.