Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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
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