Sdílet prostřednictvím


CComCachedTearOffObject – třída

Tato třída implementuje IUnknown pro odtržené rozhraní.

Syntaxe

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

Parametry

Obsažené
Třída odtrhání odvozená od CComTearOffObjectBase rozhraní a rozhraní, která chcete, aby byl objekt pro odtržky podporován.

Členové

Veřejné konstruktory

Jméno popis
CComCachedTearOffObject::CComCachedTearOffObject Konstruktor
CComCachedTearOffObject::~CComCachedTearOffObject Destruktor.

Veřejné metody

Jméno popis
CComCachedTearOffObject::AddRef Zvýší počet odkazů pro CComCachedTearOffObject objekt.
CComCachedTearOffObject::FinalConstruct Volá metodu m_contained::FinalConstruct (metoda odtrhání třídy).
CComCachedTearOffObject::FinalRelease Volá metodu m_contained::FinalRelease (metoda odtrhání třídy).
CComCachedTearOffObject::QueryInterface Vrátí ukazatel na IUnknownCComCachedTearOffObject objekt nebo na požadované rozhraní třídy odtrhání (třída contained).
CComCachedTearOffObject::Release Sníží počet odkazů pro CComCachedTearOffObject objekt a zničí ho, pokud je počet odkazů 0.

Veřejné datové členy

Jméno popis
CComCachedTearOffObject::m_contained Objekt CComContainedObject odvozený z vaší třídy odtrhání (třída contained).

Poznámky

CComCachedTearOffObject implementuje IUnknown pro rozhraní pro odtržení. Tato třída se liší od CComTearOffObject toho, co CComCachedTearOffObject má vlastní IUnknown, odděleně od objektu vlastníka IUnknown (vlastník je objekt, pro který se vytváří odtržení). CComCachedTearOffObject udržuje svůj vlastní počet odkazů na jeho IUnknown a odstraní se sám, jakmile je jeho počet odkazů nula. Pokud však zadáte dotaz na některá z jeho rozhraní pro odtržení, zvýší se počet odkazů objektu IUnknown vlastníka.

Pokud objekt CComCachedTearOffObject , který implementuje odtržení, je již vytvořena instance a rozhraní pro odtržení se znovu dotazuje, stejný CComCachedTearOffObject objekt se znovu použije. Naproti tomu pokud se na objekt vlastníka znovu dotazuje odtržené rozhraní implementované objektem CComTearOffObject vlastníka, vytvoří se instance jiného CComTearOffObject rozhraní.

Třída vlastníka musí implementovat FinalRelease a volat Release v mezipaměti IUnknown pro , CComCachedTearOffObjectcož sníží jeho referenční počet. To způsobí CComCachedTearOffObject, že FinalRelease se zavolá a odstraní slzu.

Hierarchie dědičnosti

CComObjectRootBase

CComObjectRootEx

IUnknown

CComCachedTearOffObject

Požadavky

Hlavička: atlcom.h

CComCachedTearOffObject::AddRef

Zvýší počet odkazů objektu CComCachedTearOffObject o 1.

STDMETHOD_(ULONG, AddRef)();

Vrácená hodnota

Hodnota, která může být užitečná pro diagnostiku a testování.

CComCachedTearOffObject::CComCachedTearOffObject

Konstruktor

CComCachedTearOffObject(void* pv);

Parametry

Pv
[v] Ukazatel na IUnknown ikonu CComCachedTearOffObject.

Poznámky

Inicializuje CComContainedObject člen, m_contained.

CComCachedTearOffObject::~CComCachedTearOffObject

Destruktor.

~CComCachedTearOffObject();

Poznámky

Uvolní všechny přidělené prostředky a zavolá FinalRelease.

CComCachedTearOffObject::FinalConstruct

Volání m_contained::FinalConstruct k vytvoření m_contained,containedCComContainedObject<> objekt použitý pro přístup k rozhraní implementované vaší třídy odtrhání.

HRESULT FinalConstruct();

Vrácená hodnota

Standardní hodnota HRESULT.

CComCachedTearOffObject::FinalRelease

Volání m_contained::FinalRelease zdarma m_contained,containedCComContainedObject<> objekt.

void FinalRelease();

CComCachedTearOffObject::m_contained

A CComContainedObject objekt odvozený z vaší třídy odtrhání.

CcomContainedObject <contained> m_contained;

Parametry

Obsažené
[v] Třída odtrhání odvozená od CComTearOffObjectBase rozhraní a rozhraní, která chcete, aby byl objekt pro odtržky podporován.

Poznámky

Metody m_contained dědí se používají pro přístup k rozhraní odtrhání ve vaší třídě odtrhání prostřednictvím objektu v mezipaměti QueryInterface, FinalConstructa FinalRelease.

CComCachedTearOffObject::QueryInterface

Načte ukazatel na požadované rozhraní.

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

Parametry

Iid
[v] Identifikátor GUID požadovaného rozhraní.

ppvObject
[ven] Ukazatel na ukazatel rozhraní identifikovaný parametrem iid nebo NULL, pokud rozhraní nebylo nalezeno.

Vrácená hodnota

Standardní hodnota HRESULT.

Poznámky

Pokud je IUnknownpožadované rozhraní , vrátí ukazatel na CComCachedTearOffObjectvlastní IUnknown hodnotu a zvýší počet odkazů. V opačném případě dotazy na rozhraní ve vaší třídě odtrhání pomocí InternalQueryInterface metoda zděděná z CComObjectRootEx.

CComCachedTearOffObject::Release

Sníží počet odkazů o 1 a pokud je počet odkazů 0, odstraní CComCachedTearOffObject objekt.

STDMETHOD_(ULONG, Release)();

Vrácená hodnota

V neladit sestavení vždy vrátí hodnotu 0. V buildech ladění vrátí hodnotu, která může být užitečná pro diagnostiku nebo testování.

Viz také

CComTearOffObject – třída
CComObjectRootEx – třída
Přehled třídy