Partager via


CComCachedTearOffObject, classe

Cette classe implémente IUnknown pour une interface de déchirure.

Syntaxe

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

Paramètres

Contenues
Votre classe de déchirure, dérivée et les interfaces à prendre CComTearOffObjectBase en charge par votre objet de déchirure.

Membres

Constructeurs publics

Nom Description
CComCachedTearOffObject ::CComCachedTearOffObject Constructeur .
CComCachedTearOffObject ::~CComCachedTearOffObject Destructeur.

Méthodes publiques

Nom Description
CComCachedTearOffObject ::AddRef Incrémente le nombre de références d’un CComCachedTearOffObject objet.
CComCachedTearOffObject ::FinalConstruct Appelle la m_contained::FinalConstruct méthode (la classe de déchirure).
CComCachedTearOffObject ::FinalRelease Appelle la m_contained::FinalRelease méthode (la classe de déchirure).
CComCachedTearOffObject ::QueryInterface Retourne un pointeur vers l’objet IUnknownCComCachedTearOffObject , ou vers l’interface demandée sur votre classe de déchirure (la classe contained).
CComCachedTearOffObject ::Release Décrémente le nombre de références d’un CComCachedTearOffObject objet et le détruit si le nombre de références est égal à 0.

Membres de données publics

Nom Description
CComCachedTearOffObject ::m_contained Objet CComContainedObject dérivé de votre classe de déchirure (la classe contained).

Notes

CComCachedTearOffObjectimplémente IUnknown pour une interface de déchirure. Cette classe diffère de CComTearOffObject celle qui CComCachedTearOffObject a sa propre IUnknownpropriété , distincte de celle de IUnknown l’objet propriétaire (le propriétaire est l’objet pour lequel la déchirure est créée). CComCachedTearOffObject conserve son propre nombre de références et IUnknown se supprime une fois que son nombre de références est égal à zéro. Toutefois, si vous interrogez l’une de ses interfaces déchirures, le nombre de références IUnknown de l’objet propriétaire est incrémenté.

Si l’objet CComCachedTearOffObject implémentant la déchirure est déjà instancié et que l’interface de déchirure est interrogée à nouveau, le même CComCachedTearOffObject objet est réutilisé. En revanche, si une interface de déchirure implémentée par une CComTearOffObject requête est de nouveau interrogée par le biais de l’objet propriétaire, une autre CComTearOffObject sera instanciée.

La classe propriétaire doit implémenter FinalRelease et appeler Release le cache IUnknown pour le CComCachedTearOffObject, qui décrémente son nombre de références. Cela entraîne CComCachedTearOffObjectl’appel FinalRelease et la suppression de la déchirure.

Hiérarchie d'héritage

CComObjectRootBase

CComObjectRootEx

IUnknown

CComCachedTearOffObject

Spécifications

En-tête : atlcom.h

CComCachedTearOffObject ::AddRef

Incrémente le nombre de références de l’objet CComCachedTearOffObject par 1.

STDMETHOD_(ULONG, AddRef)();

Valeur de retour

Valeur qui peut être utile pour les diagnostics et les tests.

CComCachedTearOffObject ::CComCachedTearOffObject

Constructeur .

CComCachedTearOffObject(void* pv);

Paramètres

Pv
[in] Pointeur vers le IUnknownCComCachedTearOffObject.

Notes

Initialise le CComContainedObject membre, m_contained.

CComCachedTearOffObject ::~CComCachedTearOffObject

Destructeur.

~CComCachedTearOffObject();

Notes

Libère toutes les ressources allouées et appelle FinalRelease.

CComCachedTearOffObject ::FinalConstruct

Appels m_contained::FinalConstruct à créer m_contained, l’objetcontainedCComContainedObject<> utilisé pour accéder à l’interface implémentée par votre classe de déchirure.

HRESULT FinalConstruct();

Valeur de retour

Valeur HRESULT standard.

CComCachedTearOffObject ::FinalRelease

Appels m_contained::FinalRelease à libérer m_contained, l’objetCComContainedObjectcontained<>.

void FinalRelease();

CComCachedTearOffObject ::m_contained

Objet CComContainedObject dérivé de votre classe de déchirure.

CcomContainedObject <contained> m_contained;

Paramètres

Contenues
[in] Votre classe de déchirure, dérivée et les interfaces à prendre CComTearOffObjectBase en charge par votre objet de déchirure.

Notes

Les méthodes m_contained héritent sont utilisées pour accéder à l’interface de déchirure dans votre classe de déchirure par le biais de QueryInterfacel’objet de déchirure mis en cache , FinalConstructet FinalRelease.

CComCachedTearOffObject ::QueryInterface

Récupère un pointeur vers l'interface demandée.

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

Paramètres

Iid
[in] GUID de l’interface demandée.

ppvObject
[out] Pointeur vers le pointeur d’interface identifié par iid ou NULL si l’interface est introuvable.

Valeur de retour

Valeur HRESULT standard.

Notes

Si l’interface demandée est IUnknown, retourne un pointeur vers les CComCachedTearOffObjectpropres IUnknown et incrémente le nombre de références. Sinon, interrogez l’interface sur votre classe de déchirure à l’aide de la méthode InternalQueryInterface héritée de CComObjectRootEx.

CComCachedTearOffObject ::Release

Décrémente le nombre de références de 1 et, si le nombre de références est égal à 0, supprime l’objet CComCachedTearOffObject .

STDMETHOD_(ULONG, Release)();

Valeur de retour

Dans les builds non debug, retourne toujours 0. Dans les builds de débogage, retourne une valeur qui peut être utile pour les diagnostics ou les tests.

Voir aussi

CComTearOffObject, classe
CComObjectRootEx, classe
Vue d’ensemble de la classe