Sdílet prostřednictvím


Třída CComPolyObject

Tato třída implementuje IUnknown agregované nebo nonaggregated objektu.

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

Parametry

Členy

Veřejné konstruktory

Název

Description

CComPolyObject::CComPolyObject

Konstruktor.

CComPolyObject:: ~ CComPolyObject

Destruktoru.

Veřejné metody

Název

Description

CComPolyObject::AddRef

Zvýší počet odkazů na objekt.

CComPolyObject::CreateInstance

(Statické) Umožňuje vytvořit nový CComPolyObject < contained> objektu bez režie CoCreateInstance.

CComPolyObject::FinalConstruct

Provádí konečná inicializace m_contained .

CComPolyObject::FinalRelease

Provádí konečné likvidace m_contained .

CComPolyObject::QueryInterface

Načte ukazatel na požadované rozhraní.

CComPolyObject::Release

Sníží počet odkaz na objekt.

Veřejné datové členy

Název

Description

CComPolyObject::m_contained

Delegáti IUnknown volání na vnější neznámý objekt shromažďovány nebo na IUnknown objektu, pokud objekt není agregované.

Poznámky

CComPolyObjectimplementuje IUnknown agregované nebo nonaggregated objektu.

Při výskytu CComPolyObject je vytvořena hodnota vnější neznámý zaškrtnuto.Pokud je NULL, IUnknown je implementováno pro objekt nonaggregated.Pokud není vnější neznámý NULL, IUnknown je implementováno pro agregovaný objekt.

Výhodou použití CComPolyObject je zabránit obě CComAggObject a CComObject v modulu pro zpracování případů souhrnné a nonaggregated.Jeden CComPolyObject objektu zpracovává obou případech.To znamená, že existují pouze jednu kopii virtuální tabulka a jednu kopii funkce v modulu.Pokud vaše virtuální tabulka je velký, to podstatně zmenšit velikost poštovní modul.Však pokud vaše virtuální tabulka je malá, pomocí CComPolyObject může vést k poněkud větší velikost modulu protože není optimalizována pro souhrnné nebo nonaggregated objektu, jako jsou CComAggObject a CComObject .

Pokud DECLARE_POLY_AGGREGATABLE v definici třídy do objektu, je určeno makro CComPolyObject bude použit k vytvoření vašeho objektu.DECLARE_POLY_AGGREGATABLEautomaticky deklarována Pokud použijete Průvodce projektu ATL vytvoření úplné řízení nebo řízení aplikace Internet Explorer.

Pokud seskupeny, CComPolyObject objekt má vlastní IUnknown, odděleného od vnější objekt IUnknowna udržuje své vlastní počet odkazů.CComPolyObjectpoužívá CComContainedObject delegovat vnější neznámý.

Další informace o agregaci naleznete v článku Základy objektů COM ATL.

Hierarchii dědičnosti

CComObjectRootBase

CComObjectRootEx

IUnknown

CComPolyObject

Požadavky

Záhlaví: atlcom.h

Viz také

Referenční dokumentace

Třída CComObjectRootEx

DECLARE_POLY_AGGREGATABLE

Další zdroje

Přehled třídy ATL