共用方式為


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 ,物件 CComContainedObject<contained> 用來存取您卸載類別所實作的介面。

HRESULT FinalConstruct();

傳回值

標準 HRESULT 值。

CComCachedTearOffObject::FinalRelease

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

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 類別
類別概觀