Bagikan melalui


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 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.

Lihat juga

Gambaran umum kelas