共用方式為


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