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
- contained
Vaší třídy odvozené z CComObjectRoot nebo CComObjectRootEx, jako i od jiných rozhraní chcete podporovat objektu.
Členy
Veřejné konstruktory
Název |
Description |
---|---|
Konstruktor. |
|
Destruktoru. |
Veřejné metody
Název |
Description |
---|---|
Zvýší počet odkazů na objekt. |
|
(Statické) Umožňuje vytvořit nový CComPolyObject < contained> objektu bez režie CoCreateInstance. |
|
Provádí konečná inicializace m_contained . |
|
Provádí konečné likvidace m_contained . |
|
Načte ukazatel na požadované rozhraní. |
|
Sníží počet odkaz na objekt. |
Veřejné datové členy
Název |
Description |
---|---|
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
IUnknown
CComPolyObject
Požadavky
Záhlaví: atlcom.h