Freigeben über


CComCachedTearOffObject-Klasse

Diese Klasse implementiert IUnknown für eine Abbruchschnittstelle.

Syntax

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

Parameter

enthalten
Ihre abreißende Klasse, abgeleitet von CComTearOffObjectBase und die Schnittstellen, die Sie unterstützen möchten, dass Ihr Tear-off-Objekt unterstützt wird.

Member

Öffentliche Konstruktoren

Name Beschreibung
CComCachedTearOffObject::CComCachedTearOffObject Der Konstruktor.
CComCachedTearOffObject::~CComCachedTearOffObject Der Destruktor.

Öffentliche Methoden

Name Beschreibung
CComCachedTearOffObject::AddRef Erhöht die Referenzanzahl für ein CComCachedTearOffObject Objekt.
CComCachedTearOffObject::FinalConstruct Ruft die m_contained::FinalConstruct Methode (die Tear-off-Klasse) auf.
CComCachedTearOffObject::FinalRelease Ruft die m_contained::FinalRelease Methode (die Tear-off-Klasse) auf.
CComCachedTearOffObject::QueryInterface Gibt einen Zeiger auf das IUnknown CComCachedTearOffObject Objekt oder auf die angeforderte Schnittstelle für die Abrissklasse (die Klasse contained) zurück.
CComCachedTearOffObject::Release Erhöht die Referenzanzahl für ein CComCachedTearOffObject Objekt und zerstört sie, wenn die Referenzanzahl 0 ist.

Öffentliche Datenmember

Name Beschreibung
CComCachedTearOffObject::m_contained Ein CComContainedObject Objekt, das von Ihrer Abreißklasse (der Klasse contained) abgeleitet ist.

Hinweise

CComCachedTearOffObjectimplementiert IUnknown für eine Abbruchschnittstelle. Diese Klasse unterscheidet sich von CComTearOffObject der, die CComCachedTearOffObject IUnknownvon den Besitzerobjekten IUnknown getrennt ist (der Besitzer ist das Objekt, für das der Abriss erstellt wird). CComCachedTearOffObject verwaltet seine eigene Bezugsanzahl IUnknown und löscht sich selbst, sobald die Referenzanzahl null ist. Wenn Sie jedoch eine seiner Abreißschnittstellen abfragen, wird die Referenzanzahl der Besitzerobjekts IUnknown erhöht.

Wenn das Objekt, das CComCachedTearOffObject das Abreißen implementiert, bereits instanziiert wird und die Abreißschnittstelle erneut abgefragt wird, wird dasselbe CComCachedTearOffObject Objekt wiederverwendet. Im Gegensatz dazu wird eine von einem CComTearOffObject Durchbruch implementierte Schnittstelle erneut über das Besitzerobjekt abgefragt, eine andere CComTearOffObject Instanziierung.

Die Besitzerklasse muss die zwischengespeicherte CComCachedTearOffObjectIUnknown Klasse implementieren FinalRelease und aufrufenRelease, wodurch die Referenzanzahl verringert wird. Dies führt CComCachedTearOffObjectdazu, dass 's FinalRelease aufgerufen und die Abriss gelöscht wird.

Vererbungshierarchie

CComObjectRootBase

CComObjectRootEx

IUnknown

CComCachedTearOffObject

Anforderungen

Kopfzeile: atlcom.h

CComCachedTearOffObject::AddRef

Erhöht die Referenzanzahl des CComCachedTearOffObject Objekts um 1.

STDMETHOD_(ULONG, AddRef)();

Rückgabewert

Ein Wert, der für Diagnose und Tests nützlich sein kann.

CComCachedTearOffObject::CComCachedTearOffObject

Der Konstruktor.

CComCachedTearOffObject(void* pv);

Parameter

Pv
[in] Zeiger auf die IUnknown des CComCachedTearOffObject.

Hinweise

Initialisiert das CComContainedObject Element, m_contained.

CComCachedTearOffObject::~CComCachedTearOffObject

Der Destruktor.

~CComCachedTearOffObject();

Hinweise

Gibt alle zugeordneten Ressourcen frei und ruft FinalRelease auf.

CComCachedTearOffObject::FinalConstruct

Aufrufe zum Erstellen m_contained, das Objekt, das>contained<CComContainedObject für den Zugriff auf die Schnittstelle verwendet wird, die von Ihrer Tear-off-Klasse implementiert wird.m_contained::FinalConstruct

HRESULT FinalConstruct();

Rückgabewert

Ein HRESULT-Standardwert.

CComCachedTearOffObject::FinalRelease

Aufrufe m_contained::FinalRelease zum kostenlosen m_containedObjekt CComContainedObject<contained> .

void FinalRelease();

CComCachedTearOffObject::m_contained

Ein CComContainedObject-Objekt , das von ihrer Tear-off-Klasse abgeleitet ist.

CcomContainedObject <contained> m_contained;

Parameter

enthalten
[in] Ihre abreißende Klasse, abgeleitet von CComTearOffObjectBase und die Schnittstellen, die Sie unterstützen möchten, dass Ihr Tear-off-Objekt unterstützt wird.

Hinweise

Die Methoden m_contained erben, werden verwendet, um über die zwischengespeicherten Abrissobjekts QueryInterface, FinalConstructund FinalRelease.

CComCachedTearOffObject::QueryInterface

Ruft einen Zeiger auf die angeforderte Schnittstelle ab.

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

Parameter

iid
[in] Die GUID der angeforderten Schnittstelle.

ppvObject
[out] Ein Zeiger auf den von iid identifizierten Schnittstellenzeiger oder NULL, wenn die Schnittstelle nicht gefunden wird.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Wenn die angeforderte Schnittstelle lautet IUnknown, wird ein Zeiger auf die CComCachedTearOffObjecteigene IUnknown Schnittstelle zurückgegeben und die Referenzanzahl erhöht. Andernfalls werden Abfragen für die Schnittstelle für die Abrissklasse mithilfe der InternalQueryInterface-Methode geerbt.CComObjectRootEx

CComCachedTearOffObject::Release

Erhöht die Bezugsanzahl um 1 und löscht, wenn die Bezugsanzahl 0 ist, das CComCachedTearOffObject Objekt.

STDMETHOD_(ULONG, Release)();

Rückgabewert

Gibt in Nicht-Debug-Builds immer "0" zurück. Gibt in Debugbuilds einen Wert zurück, der für Diagnosen oder Tests nützlich sein kann.

Siehe auch

CComTearOffObject-Klasse
CComObjectRootEx-Klasse
Klassenübersicht