Classe CComCachedTearOffObject
Questa classe implementa IUnknown per un'interfaccia di strappo.
Sintassi
template
<class contained>
class CComCachedTearOffObject : public
IUnknown,
public CComObjectRootEx<contained
::_ThreadModel::ThreadModelNoCS>
Parametri
contenuto
La classe di strappo, derivata da CComTearOffObjectBase
e le interfacce da cui si vuole supportare l'oggetto tear-off.
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CComCachedTearOffObject::CComCachedTearOffObject | Costruttore. |
CComCachedTearOffObject::~CComCachedTearOffObject | Distruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CComCachedTearOffObject::AddRef | Incrementa il conteggio dei riferimenti per un CComCachedTearOffObject oggetto . |
CComCachedTearOffObject::FinalConstruct | Chiama ( m_contained::FinalConstruct il metodo della classe di strappo). |
CComCachedTearOffObject::FinalRelease | Chiama ( m_contained::FinalRelease il metodo della classe di strappo). |
CComCachedTearOffObject::QueryInterface | Restituisce un puntatore all'oggetto IUnknown dell'oggetto CComCachedTearOffObject o all'interfaccia richiesta nella classe tear-off (la classe contained ). |
CComCachedTearOffObject::Release | Decrementa il conteggio dei riferimenti per un CComCachedTearOffObject oggetto e lo elimina se il conteggio dei riferimenti è 0. |
Membri dati pubblici
Nome | Descrizione |
---|---|
CComCachedTearOffObject::m_contained | Oggetto CComContainedObject derivato dalla classe tear-off (la classe contained ). |
Osservazioni:
CComCachedTearOffObject
implementa IUnknown per un'interfaccia di strappo. Questa classe differisce da CComTearOffObject
in quanto CComCachedTearOffObject
dispone di un proprio IUnknown
oggetto , separato dal proprietario dell'oggetto IUnknown
(il proprietario è l'oggetto per il quale viene creata la disinstallazione). CComCachedTearOffObject
mantiene il proprio conteggio dei riferimenti e IUnknown
lo elimina una volta che il conteggio dei riferimenti è zero. Tuttavia, se si esegue una query per una delle relative interfacce di strappo, il conteggio dei riferimenti dell'oggetto IUnknown
proprietario verrà incrementato.
Se l'oggetto CComCachedTearOffObject
che implementa l'operazione di disinstallazione è già stata creata un'istanza e viene nuovamente eseguita una query sull'interfaccia di disinstallazione, lo stesso CComCachedTearOffObject
oggetto viene riutilizzato. Al contrario, se un'interfaccia di disinstallazione implementata da un CComTearOffObject
oggetto viene nuovamente sottoposta a query tramite l'oggetto proprietario, verrà creata un'altra CComTearOffObject
istanza.
La classe owner deve implementare FinalRelease
e chiamare Release
sulla cache IUnknown
per CComCachedTearOffObject
, che decrementerà il conteggio dei riferimenti. Questo causerà CComCachedTearOffObject
la chiamata e l'eliminazione FinalRelease
della rimozione.
Gerarchia di ereditarietà
CComObjectRootBase
IUnknown
CComCachedTearOffObject
Requisiti
Intestazione: atlcom.h
CComCachedTearOffObject::AddRef
Incrementa il numero di riferimenti dell'oggetto CComCachedTearOffObject
di 1.
STDMETHOD_(ULONG, AddRef)();
Valore restituito
Valore che può essere utile per la diagnostica e il test.
CComCachedTearOffObject::CComCachedTearOffObject
Costruttore.
CComCachedTearOffObject(void* pv);
Parametri
Pv
[in] Puntatore all'oggetto IUnknown
dell'oggetto CComCachedTearOffObject
.
Osservazioni:
Inizializza il CComContainedObject
membro m_contained.
CComCachedTearOffObject::~CComCachedTearOffObject
Distruttore.
~CComCachedTearOffObject();
Osservazioni:
Libera tutte le risorse allocate e chiama FinalRelease.
CComCachedTearOffObject::FinalConstruct
Chiama m_contained::FinalConstruct
per creare m_contained
, l'oggettocontained
CComContainedObject
<> usato per accedere all'interfaccia implementata dalla classe di strappo.
HRESULT FinalConstruct();
Valore restituito
Valore HRESULT standard.
CComCachedTearOffObject::FinalRelease
Chiama per liberare , l'oggetto CComContainedObject
contained
<> .m_contained
m_contained::FinalRelease
void FinalRelease();
CComCachedTearOffObject::m_contained
Oggetto CComContainedObject derivato dalla classe tear-off.
CcomContainedObject <contained> m_contained;
Parametri
contenuto
[in] La classe di strappo, derivata da CComTearOffObjectBase
e le interfacce da cui si vuole supportare l'oggetto tear-off.
Osservazioni:
I metodi m_contained
ereditano vengono usati per accedere all'interfaccia di strappo nella classe di disinstallazione tramite l'oggetto di disinstallazione memorizzato nella cache , QueryInterface
FinalConstruct
e FinalRelease
.
CComCachedTearOffObject::QueryInterface
Recupera un puntatore all'interfaccia richiesta.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
Parametri
iid
[in] GUID dell'interfaccia richiesta.
ppvObject
[out] Puntatore al puntatore dell'interfaccia identificato da iid o NULL se l'interfaccia non viene trovata.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Se l'interfaccia richiesta è IUnknown
, restituisce un puntatore al CComCachedTearOffObject
proprio IUnknown
e incrementa il conteggio dei riferimenti. In caso contrario, esegue una query per l'interfaccia nella classe tear-off usando il metodo InternalQueryInterface ereditato da CComObjectRootEx
.
CComCachedTearOffObject::Release
Decrementa il conteggio dei riferimenti di 1 e, se il conteggio dei riferimenti è 0, elimina l'oggetto CComCachedTearOffObject
.
STDMETHOD_(ULONG, Release)();
Valore restituito
Nelle compilazioni non di debug restituisce sempre 0. Nelle compilazioni di debug restituisce un valore che può essere utile per la diagnostica o il test.
Vedi anche
Classe CComTearOffObject
Classe CComObjectRootEx
Cenni preliminari sulla classe