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 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 CComPtrBasetitik 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 CComPtrBasetitik 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
AttachCComPtrBase::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.