共用方式為


CComPolyObject 類別

這個類別會實作彙總或 nonaggregated 物件的 IUnknown

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

參數

Members

x83dshsy.collapse_all(zh-tw,VS.110).gif公用建構函式

名稱

描述

CComPolyObject::CComPolyObject

建構函式。

CComPolyObject::~CComPolyObject

解構函式。

x83dshsy.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

CComPolyObject::AddRef

將物件的參考計數。

CComPolyObject::CreateInstance

(靜態) 可讓您建立新的 CComPolyObject< contained> 物件,而不需額外負荷 CoCreateInstance()

CComPolyObject::FinalConstruct

執行 m_contained的最後的初始化。

CComPolyObject::FinalRelease

執行 m_contained的最終解構。

CComPolyObject::QueryInterface

擷取指標所要求的介面。

CComPolyObject::Release

將物件的參考計數遞減。

x83dshsy.collapse_all(zh-tw,VS.110).gif公用資料成員

名稱

描述

CComPolyObject::m_contained

委派 IUnknown 呼叫外部 UNKNOWN,如果物件彙總或物件的 IUnknown 物件是否不可彙總。

備註

彙總的 nonaggregated 或物件的CComPolyObject 實作 IUnknown

CComPolyObject 建立的執行個體時,這個外部未知的值進行檢查。 如果是 NULLIUnknown 為 nonaggregated 物件上實作。 如果這個外部未知的參數不是 NULLIUnknown 為彙總的物件上實作。

使用 CComPolyObject 的優點是您不會處理 CComAggObject 和的 CComObject 於模組彙總和 nonaggregated 情況。 單一 CComPolyObject 物件控制代碼兩種情況。 這表示只有一個複本的 vtable 和函式的一個複本存在於模組。 如果您 vtable 非常大,所以可以大幅降低模組大小。 不過,因此,如果您 vtable 很小,使用 CComPolyObject 可能造成更大的模組大小,因為它沒有為彙總或 nonaggregated 最佳化物件,就像 CComAggObjectCComObject

如果 DECLARE_POLY_AGGREGATABLE 巨集會在您的物件類別定義中指定, CComPolyObject 將用來建立您自己的物件。 如果您使用 ATL 專案精靈建立完整的控制項或 Internet Explorer 控制項,DECLARE_POLY_AGGREGATABLE 會自動宣告。

如果彙總, CComPolyObject 物件都有自己的 IUnknown,不同於外部物件的 IUnknown,並保留它的參考計數。 CComPolyObject 使用 CComContainedObject 委派至外部未知。

如需集合的詳細資訊,請參閱本文 ATL COM 物件的基本概念

繼承階層架構

CComObjectRootBase

CComObjectRootEx

IUnknown

CComPolyObject

需求

Header: atlcom.h

請參閱

參考

CComObjectRootEx 類別

DECLARE_POLY_AGGREGATABLE

其他資源

ATL 類別概觀