CComCachedTearOffObject 類別

這個類別會 針對卸除介面實作 IUnknown

語法

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

參數

包含
您的卸除類別,衍生自 CComTearOffObjectBase ,以及您希望卸除物件支援的介面。

成員

公用建構函式

名稱 描述
CComCachedTearOffObject::CComCachedTearOffObject 建構函式。
CComCachedTearOffObject::~CComCachedTearOffObject 解構函式。

公用方法

名稱 描述
CComCachedTearOffObject::AddRef 遞增 對象的參考計數 CComCachedTearOffObject
CComCachedTearOffObject::FinalConstruct m_contained::FinalConstruct 呼叫 (卸除類別的 方法)。
CComCachedTearOffObject::FinalRelease m_contained::FinalRelease 呼叫 (卸除類別的 方法)。
CComCachedTearOffObject::QueryInterface 傳回 物件的指標IUnknownCComCachedTearOffObject,或您卸除類別上要求的介面指標(類別contained)。
CComCachedTearOffObject::Release 遞減 對象的參考計數 CComCachedTearOffObject ,並在參考計數為 0 時終結它。

公用資料成員

名稱 描述
CComCachedTearOffObject::m_contained CComContainedObject衍生自卸除類別的物件(類別 contained)。

備註

CComCachedTearOffObject實作卸除介面的 IUnknown 。 這個類別與 CComTearOffObjectCComCachedTearOffObject 有自己的 IUnknown不同,不同於擁有者物件的 IUnknown (擁有者是正在建立卸除的物件)。 CComCachedTearOffObject 在其上 IUnknown 維護自己的參考計數,並在其參考計數為零時刪除本身。 不過,如果您查詢其任何卸除介面,則擁有者對象的 IUnknown 參考計數將會遞增。

CComCachedTearOffObject如果實作卸除的對象已經具現化,而且再次查詢卸除介面,則會重複使用相同的CComCachedTearOffObject物件。 相反地,如果 透過擁有者物件再次查詢 所 CComTearOffObject 實作的卸除介面,則會具現化另一個 CComTearOffObject 介面。

擁有者類別必須在 快取IUnknownCComCachedTearOffObject的 上實FinalRelease作 並呼叫 Release ,這會遞減其參考計數。 這會導致CComCachedTearOffObjectFinalRelease呼叫 並刪除卸除。

繼承階層架構

CComObjectRootBase

CComObjectRootEx

IUnknown

CComCachedTearOffObject

需求

標頭: atlcom.h

CComCachedTearOffObject::AddRef

將對象的參考計數 CComCachedTearOffObject 遞增 1。

STDMETHOD_(ULONG, AddRef)();

傳回值

對於診斷和測試而言可能很有用的值。

CComCachedTearOffObject::CComCachedTearOffObject

建構函式。

CComCachedTearOffObject(void* pv);

參數

光伏
[in] IUnknownCComCachedTearOffObject指標。

備註

CComContainedObject初始化成員,m_contained

CComCachedTearOffObject::~CComCachedTearOffObject

解構函式。

~CComCachedTearOffObject();

備註

釋放所有已配置的資源,並呼叫 FinalRelease

CComCachedTearOffObject::FinalConstruct

呼叫 m_contained::FinalConstruct 以建立 m_contained,對象containedCComContainedObject<>用來存取您卸除類別所實作的介面。

HRESULT FinalConstruct();

傳回值

標準 HRESULT 值。

CComCachedTearOffObject::FinalRelease

呼叫 m_contained::FinalRelease 釋放 m_contained的物件 CComContainedObject<contained> 。

void FinalRelease();

CComCachedTearOffObject::m_contained

衍生 自卸除類別的 CComContainedObject 物件。

CcomContainedObject <contained> m_contained;

參數

包含
[in]您的卸除類別,衍生自 CComTearOffObjectBase ,以及您希望卸除物件支援的介面。

備註

方法m_contained會繼承用來透過快取的卸除物件、 QueryInterfaceFinalConstructFinalRelease存取卸除類別中的卸除介面。

CComCachedTearOffObject::QueryInterface

擷取所要求介面的指標。

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

參數

iid
[in]所要求介面的 GUID。

ppvObject
[out]iid識別之介面指標的指標,如果找不到介面,則為 NULL。

傳回值

標準 HRESULT 值。

備註

如果要求的介面為 IUnknown,則會傳回 本身 CComCachedTearOffObjectIUnknown 指標,並遞增參考計數。 否則,使用繼承自CComObjectRootEx的 InternalQueryInterface 方法,查詢卸除類別上的介面。

CComCachedTearOffObject::Release

將參考計數遞減 1,如果參考計數為 0,則會刪除 CComCachedTearOffObject 物件。

STDMETHOD_(ULONG, Release)();

傳回值

在非偵錯組建中,一律會傳回 0。 在偵錯組建中,傳回可能對診斷或測試很有用的值。

另請參閱

CComTearOffObject 類別
CComObjectRootEx 類別
類別概觀