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 IUnknown CComCachedTearOffObject , 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
CComCachedTearOffObject
implémente IUnknown pour une interface de déchirure. Cette classe diffère de CComTearOffObject
celle qui CComCachedTearOffObject
a sa propre IUnknown
proprié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 CComCachedTearOffObject
l’appel FinalRelease
et la suppression de la déchirure.
Hiérarchie d'héritage
CComObjectRootBase
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 IUnknown
CComCachedTearOffObject
.
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’objetcontained
CComContainedObject
<> 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’objetCComContainedObject
contained
<>.
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 QueryInterface
l’objet de déchirure mis en cache , FinalConstruct
et 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 CComCachedTearOffObject
propres 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