CComContainedObject 類別
這個類別藉由委派給擁有者物件的 IUnknown
來實作 IUnknown。
重要
這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。
語法
template<class Base>
class CComContainedObject : public Base
參數
Base
您的類別衍生自 CComObjectRoot 或 CComObjectRootEx。
成員
公用建構函式
名稱 | 描述 |
---|---|
CComContainedObject::CComContainedObject | 建構函式。 初始化擁有者對象的 IUnknown 成員指標。 |
CComContainedObject::~CComContainedObject | 解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CComContainedObject::AddRef | 遞增擁有者對象的參考計數。 |
CComContainedObject::GetControllingUnknown | 擷取擁有者物件的 IUnknown 。 |
CComContainedObject::QueryInterface | 擷取擁有者物件上要求的介面指標。 |
CComContainedObject::Release | 遞減擁有者對象的參考計數。 |
備註
ATL 在 CComContainedObject
CComAggObject、CComPolyObject 和 CComCachedTearOffObject 類別中使用。 CComContainedObject
藉由委派給擁有者物件的 IUnknown
來實作 IUnknown。 (擁有者是匯總的外部物件,或是正在建立卸除介面的物件。 CComContainedObject
會呼叫 CComObjectRootEx
的 OuterQueryInterface
、 OuterAddRef
和 OuterRelease
,全都是透過 Base
繼承而來。
繼承階層架構
Base
CComContainedObject
需求
標頭: atlcom.h
CComContainedObject::AddRef
遞增擁有者對象的參考計數。
STDMETHOD_(ULONG, AddRef)();
傳回值
對於診斷或測試而言可能很有用的值。
CComContainedObject::CComContainedObject
建構函式。
CComContainedObject(void* pv);
參數
光伏
[in]擁有者物件的 IUnknown
。
備註
將 m_pOuterUnknown
成員指標 (透過 Base
類別繼承) 設定為 pv。
CComContainedObject::~CComContainedObject
解構函式。
~CComContainedObject();
備註
釋放所有已配置的資源。
CComContainedObject::GetControllingUnknown
傳m_pOuterUnknown
回擁有者對象的 成員指標(透過基類繼承)。IUnknown
IUnknown* GetControllingUnknown();
傳回值
擁有者物件的 IUnknown
。
備註
如果Base
已宣告DECLARE_GET_CONTROLLING_UNKNOWN巨集,這個方法可能是虛擬的。
CComContainedObject::QueryInterface
擷取擁有者物件上要求的介面指標。
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);
參數
iid
[in] 所要求介面的識別碼。
ppvObject
[out]由 iid 識別之介面指標的指標。 如果物件不支持這個介面, ppvObject 會設定為 NULL。
pp
[out]型別 Q
所識別之介面指標的指標。 如果物件不支持這個介面, pp 會設定為 NULL。
傳回值
標準 HRESULT 值。
CComContainedObject::Release
遞減擁有者對象的參考計數。
STDMETHOD_(ULONG, Release)();
傳回值
在偵錯組建中, Release
傳回可能對診斷或測試很有用的值。 在非偵錯組建中, Release
一律會傳回 0。