Share via


Klasse CComCachedTearOffObject

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse implementeert IUnknown voor een losloopinterface.

Syntaxis

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

Parameterwaarden

ingesloten
Uw scheurklasse, afgeleid van CComTearOffObjectBase en de interfaces die u wilt ondersteunen door het tear-off-object.

Leden

Openbare constructors

Naam Description
CComCachedTearOffObject::CComCachedTearOffObject De constructor.
CComCachedTearOffObject::~CComCachedTearOffObject De destructor.

Openbare methoden

Naam Description
CComCachedTearOffObject::AddRef Hiermee wordt het aantal verwijzingen voor een CComCachedTearOffObject object verhoogd.
CComCachedTearOffObject::FinalConstruct Roept de methode (de methode van de m_contained::FinalConstruct scheurklasse) aan.
CComCachedTearOffObject::FinalRelease Roept de methode (de methode van de m_contained::FinalRelease scheurklasse) aan.
CComCachedTearOffObject::QueryInterface Retourneert een aanwijzer naar het IUnknownCComCachedTearOffObject object of naar de aangevraagde interface op uw scheurklasse (de klasse contained).
CComCachedTearOffObject::Release Hiermee wordt het aantal verwijzingen voor een CComCachedTearOffObject object afgebroken en vernietigd als het aantal verwijzingen 0 is.

Publieke dataleden

Naam Description
CComCachedTearOffObject::m_contained Een CComContainedObject object dat is afgeleid van uw scheurklasse (de klasse contained).

Opmerkingen

CComCachedTearOffObject implementeert IUnknown voor een tear-off interface. Deze klasse wijkt af van CComTearOffObject de klasse die CComCachedTearOffObject een eigen IUnknownheeft, gescheiden van de eigenaarobjecten IUnknown (de eigenaar is het object waarvoor de scheur wordt gemaakt). CComCachedTearOffObject onderhoudt het eigen aantal verwijzingen op het IUnknown en verwijdert zichzelf zodra het aantal verwijzingen nul is. Als u echter query's uitvoert op een van de losloopinterfaces, wordt het aantal verwijzingen van het eigenaarsobject IUnknown verhoogd.

Als het object dat de CComCachedTearOffObject scheur implementeert, al wordt geïnstantieerd en de loslaatinterface opnieuw wordt opgevraagd, wordt hetzelfde CComCachedTearOffObject object opnieuw gebruikt. Als daarentegen een door een door een CComTearOffObject app geïmplementeerde interface opnieuw wordt opgevraagd via het eigenaarobject, wordt er een andere CComTearOffObject geïnstantieerd.

De eigenaarsklasse moet het aantal verwijzingen implementeren FinalRelease en aanroepen Release in de cache IUnknown voor de CComCachedTearOffObjectklasse , waardoor het aantal verwijzingen wordt afgebroken. Dit zorgt ervoor dat CComCachedTearOffObjectde FinalRelease scheur wordt aangeroepen en verwijderd.

Overnamehiërarchie

CComObjectRootBase

CComObjectRootEx

IUnknown

CComCachedTearOffObject

Requirements

Koptekst: atlcom.h

CComCachedTearOffObject::AddRef

Hiermee wordt het verwijzingsaantal van het CComCachedTearOffObject object verhoogd met 1.

STDMETHOD_(ULONG, AddRef)();

Retourwaarde

Een waarde die nuttig kan zijn voor diagnostische gegevens en tests.

CComCachedTearOffObject::CComCachedTearOffObject

De constructor.

CComCachedTearOffObject(void* pv);

Parameterwaarden

Pv
[in] Wijs de aanwijzer naar de IUnknownCComCachedTearOffObject.

Opmerkingen

Initialiseert het CComContainedObject lid , m_contained.

CComCachedTearOffObject::~CComCachedTearOffObject

De destructor.

~CComCachedTearOffObject();

Opmerkingen

Alle toegewezen resources en roept FinalRelease aan.

CComCachedTearOffObject::FinalConstruct

Aanroepen m_contained::FinalConstruct om te makenm_contained, hetcontainedCComContainedObject<> object dat wordt gebruikt voor toegang tot de interface die is geïmplementeerd door uw scheurklasse.

HRESULT FinalConstruct();

Retourwaarde

Een standaard HRESULT-waarde.

CComCachedTearOffObject::FinalRelease

Oproepen m_contained::FinalRelease naar gratis m_contained, het CComContainedObject<contained> object.

void FinalRelease();

CComCachedTearOffObject::m_contained

Een CComContainedObject-object dat is afgeleid van uw scheurklasse.

CcomContainedObject <contained> m_contained;

Parameterwaarden

ingesloten
[in] Uw scheurklasse, afgeleid van CComTearOffObjectBase en de interfaces die u wilt ondersteunen door het tear-off-object.

Opmerkingen

De methoden m_contained die worden overgenomen, worden gebruikt om toegang te krijgen tot de losloopinterface in uw scheurklasse via de objecten in de cache QueryInterface, FinalConstructen FinalRelease.

CComCachedTearOffObject::QueryInterface

Hiermee wordt een aanwijzer naar de aangevraagde interface opgehaald.

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

Parameterwaarden

iid
[in] De GUID van de interface die wordt aangevraagd.

ppvObject
[uit] Een aanwijzer naar de interfacepointer die is geïdentificeerd door iid of NULL als de interface niet wordt gevonden.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

Als de aangevraagde interface is IUnknown, retourneert u een aanwijzer naar de CComCachedTearOffObjecteigen IUnknown interface en wordt het aantal verwijzingen verhoogd. Anders voert u query's uit voor de interface op uw scheurklasse met behulp van de methode InternalQueryInterface die is overgenomen van CComObjectRootEx.

CComCachedTearOffObject::Release

Hiermee wordt het aantal verwijzingen met 1 verminderd en als het aantal verwijzingen 0 is, wordt het CComCachedTearOffObject object verwijderd.

STDMETHOD_(ULONG, Release)();

Retourwaarde

In builds zonder foutopsporing retourneert altijd 0. In builds voor foutopsporing wordt een waarde geretourneerd die nuttig kan zijn voor diagnostische gegevens of tests.

Zie ook

Klasse CComTearOffObject
CComObjectRootEx-klasse
Overzicht van klassen