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
CComCachedTearOffObject
implementiert IUnknown für eine Abbruchschnittstelle. Diese Klasse unterscheidet sich von CComTearOffObject
der, die CComCachedTearOffObject
IUnknown
von 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 CComCachedTearOffObject
IUnknown
Klasse implementieren FinalRelease
und aufrufenRelease
, wodurch die Referenzanzahl verringert wird. Dies führt CComCachedTearOffObject
dazu, dass 's FinalRelease
aufgerufen und die Abriss gelöscht wird.
Vererbungshierarchie
CComObjectRootBase
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_contained
Objekt 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
, FinalConstruct
und 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 CComCachedTearOffObject
eigene 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