Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
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
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