DECLARE_POLY_AGGREGATABLE

DECLARE_POLY_AGGREGATABLE ( x )

Parametri

x

[in] Il nome dell'oggetto della classe si definisce come aggregabile o non aggregabile.

Osservazioni

Specifica che un'istanza di CComPolyObject lt;x> viene creato quando viene creato l'oggetto. Durante la creazione, viene controllato il valore dell'ignoto esterno. Se è NULL, viene implementata IUnknown per un oggetto non aggregato. Se l'ignoto esterno non è NULL, verrà implementato l'IUnknown per un oggetto aggregato.

Il vantaggio dell'utilizzo di DECLARE_POLY_AGGREGATABLE è che si evita di avere sia CComAggObject e CComObject nel modulo per gestire i casi aggregati e non aggregati. Un singolo oggetto CComPolyObject gestisce entrambi i casi. Questo significa che solo una copia di vtable e una copia delle funzioni presenti nel modulo. Se tuo vtable è grande, questo può ridurre notevolmente le dimensioni del modulo. Tuttavia, se tuo vtable è piccola, utilizzando CComPolyObject può comportare una dimensione leggermente più grande del modulo perché esso non è ottimizzato per un oggetto non aggregato o aggregato, come sono CComAggObject e CComObject.

La macro DECLARE_POLY_AGGREGATABLE automaticamente viene dichiarata nell'oggetto se si utilizza la creazione guidata oggetto per creare un controllo completo o il controllo di Internet Explorer.

Macro ATL e funzioni globali

Vedi anche

CComPolyObject, CComAggObject, CComObject

Index