Vorlage Lt; -Klasse enthalten>
KlasseCComCachedTearOffObject : publicIUnknown, öffentlicheCComObjectRootEx < enthaltenen:: _ThreadModel::ThreadModelNoCS >
Parameter
enthalten
Ihre ABREISS-Klasse, die von CComTearOffObjectBase und Sie Ihre ABREISS-Objekt unterstützen möchten Schnittstellen.
Implementiert CComCachedTearOffObject IUnknown für ein ABREISS-Schnittstelle. Diese Klasse unterscheidet sich von CComTearOffObject auf die CComCachedTearOffObject eigene IUnknown, getrennt von den des Besitzerobjekts IUnknown (der Besitzer ist das Objekt, für das die ABREISS erstellt wird). CComCachedTearOffObject unterhält eine eigene Verweiszähler auf seine IUnknown und löscht sich selbst, wenn der Verweiszähler 0 ist. Beachten Sie jedoch, dass Abfragen für jede seiner Schnittstellen ABREISS den Verweiszähler der des Besitzerobjekts IUnknown inkrementiert.
Wenn das CComCachedTearOffObject -Objekt, das implementiert die ABREISS bereits instanziiert wird, und die ABREISS-Schnittstelle ist für erneut abgefragt, ist das gleiche CComCachedTearOffObject -Objekt wiederverwendet. Im Gegensatz dazu, wenn eine ABREISS-Schnittstelle implementiert, indem ein CComTearOffObject wieder durch die Eigentümer-Objekt abgefragt werden, wird ein weiterer CComTearOffObject instanziiert werden.
Die Besitzerklasse muss implementieren FinalRelease und Release für die CComCachedTearOffObject, die den Verweiszähler zu dekrementieren, wird auf die zwischengespeicherten IUnknown aufrufen. Dadurch wird CComCachedTearOffObject FinalRelease aufgerufen werden und löschen Sie die Tear-off.
# include lt;atlcom.h>
Siehe auch&Nbsp;CComTearOffObject, CComObjectRootEx