Bagikan melalui


Kelas CComCachedTearOffObject

Kelas ini mengimplementasikan IUnknown untuk antarmuka air mata.

Sintaks

template
<class contained>
class CComCachedTearOffObject : public
    IUnknown,
public CComObjectRootEx<contained
::_ThreadModel::ThreadModelNoCS>

Parameter

Terkandung
Kelas air mata Anda, berasal dari CComTearOffObjectBase dan antarmuka yang Anda inginkan untuk mendukung objek robek Anda.

Anggota

Konstruktor Publik

Nama Deskripsi
CComCachedTearOffObject::CComCachedTearOffObject Konstruktor.
CComCachedTearOffObject::~CComCachedTearOffObject Destruktor.

Metode Publik

Nama Deskripsi
CComCachedTearOffObject::AddRef Menaikkan jumlah referensi untuk CComCachedTearOffObject objek.
CComCachedTearOffObject::FinalConstruct m_contained::FinalConstruct Memanggil (metode kelas yang dirobek).
CComCachedTearOffObject::FinalRelease m_contained::FinalRelease Memanggil (metode kelas yang dirobek).
CComCachedTearOffObject::QueryInterface Mengembalikan penunjuk ke IUnknown CComCachedTearOffObject objek, atau ke antarmuka yang diminta pada kelas tear-off Anda (kelas contained).
CComCachedTearOffObject::Release Mengurangi jumlah referensi untuk CComCachedTearOffObject objek dan menghancurkannya jika jumlah referensi adalah 0.

Anggota Data Publik

Nama Deskripsi
CComCachedTearOffObject::m_contained Objek CComContainedObject yang berasal dari kelas air mata Anda (kelas contained).

Keterangan

CComCachedTearOffObjectmengimplementasikan IUnknown untuk antarmuka air mata. Kelas ini berbeda dari CComTearOffObject di dalam yang CComCachedTearOffObject memiliki sendiri IUnknown, terpisah dari objek IUnknown pemilik (pemilik adalah objek tempat tear-off sedang dibuat). CComCachedTearOffObject mempertahankan jumlah referensinya sendiri dan IUnknown menghapus dirinya sendiri setelah jumlah referensinya nol. Namun, jika Anda meminta salah satu antarmuka air matanya, jumlah referensi objek IUnknown pemilik akan bertambah bertahap.

Jika objek yang CComCachedTearOffObject mengimplementasikan tear-off sudah dibuat, dan antarmuka air mata dikueri lagi, objek yang sama CComCachedTearOffObject digunakan kembali. Sebaliknya, jika antarmuka air mata yang diimplementasikan oleh CComTearOffObject kembali dikueri melalui objek pemilik, yang lain CComTearOffObject akan dibuat.

Kelas pemilik harus menerapkan FinalRelease dan memanggil Release cache IUnknown untuk CComCachedTearOffObject, yang akan mengurangi jumlah referensinya. Ini akan menyebabkan CComCachedTearOffObject's FinalRelease untuk dipanggil dan menghapus air mata-off.

Hierarki Warisan

CComObjectRootBase

CComObjectRootEx

IUnknown

CComCachedTearOffObject

Persyaratan

Header: atlcom.h

CComCachedTearOffObject::AddRef

Menaikkan jumlah CComCachedTearOffObject referensi objek sebesar 1.

STDMETHOD_(ULONG, AddRef)();

Tampilkan Nilai

Nilai yang mungkin berguna untuk diagnostik dan pengujian.

CComCachedTearOffObject::CComCachedTearOffObject

Konstruktor.

CComCachedTearOffObject(void* pv);

Parameter

Pv
[di] Penunjuk ke IUnknown dari CComCachedTearOffObject.

Keterangan

Menginisialisasi CComContainedObject anggota, m_contained.

CComCachedTearOffObject::~CComCachedTearOffObject

Destruktor.

~CComCachedTearOffObject();

Keterangan

Membebaskan semua sumber daya yang dialokasikan dan memanggil FinalRelease.

CComCachedTearOffObject::FinalConstruct

m_contained::FinalConstruct Panggilan untuk membuat m_contained, objek yang CComContainedObject<contained> digunakan untuk mengakses antarmuka yang diimplementasikan oleh kelas tear-off Anda.

HRESULT FinalConstruct();

Tampilkan Nilai

Nilai HRESULT standar.

CComCachedTearOffObject::FinalRelease

m_contained::FinalRelease Panggilan ke gratis m_contained,containedCComContainedObject<> objek .

void FinalRelease();

CComCachedTearOffObject::m_contained

Objek CComContainedObject berasal dari kelas tear-off Anda.

CcomContainedObject <contained> m_contained;

Parameter

Terkandung
[di] Kelas air mata Anda, berasal dari CComTearOffObjectBase dan antarmuka yang Anda inginkan untuk mendukung objek robek Anda.

Keterangan

Metode m_contained yang diwariskan digunakan untuk mengakses antarmuka air mata di kelas air mata Anda melalui objek QueryInterfacetear-off cache, , FinalConstructdan FinalRelease.

CComCachedTearOffObject::QueryInterface

Mengambil penunjuk ke antarmuka yang diminta.

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);

Parameter

iid
[di] GUID antarmuka yang diminta.

ppvObject
[out] Penunjuk ke penunjuk antarmuka yang diidentifikasi oleh iid, atau NULL jika antarmuka tidak ditemukan.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Jika antarmuka yang diminta adalah IUnknown, mengembalikan penunjuk ke CComCachedTearOffObjectIUnknown jumlah referensi sendiri dan menaikkan. Jika tidak, kueri untuk antarmuka pada kelas air mata Anda menggunakan metode InternalQueryInterface yang diwarisi dari CComObjectRootEx.

CComCachedTearOffObject::Release

Mengurangi jumlah referensi sebesar 1 dan, jika jumlah referensi adalah 0, akan menghapus CComCachedTearOffObject objek.

STDMETHOD_(ULONG, Release)();

Tampilkan Nilai

Dalam build non-debug, selalu mengembalikan 0. Dalam build debug, mengembalikan nilai yang mungkin berguna untuk diagnostik atau pengujian.

Lihat juga

Kelas CComTearOffObject
Kelas CComObjectRootEx
Gambaran Umum Kelas