DECLARE_POLY_AGGREGATABLE
Spécifie qu'une instance de CComPolyObject < X > est créée lorsque l'objet est créé.
DECLARE_POLY_AGGREGATABLE(
x
)
Paramètres
- x
[in] Le nom de l'objet de classe que vous définissez comme pouvant être regroupé en agrégats ou non pouvant être regroupé en agrégats.
Notes
Pendant la création, la valeur de l'inconnu externe est activée.Si c'est NULL, IUnknown est implémenté pour un objet non regroupé en agrégats.Si l'inconnu externe n'est pas NULL, IUnknown est implémenté pour un objet regroupé en agrégats.
l'avantage d'utiliser DECLARE_POLY_AGGREGATABLE est que vous évitez d'avoir CComAggObject et CComObject dans votre module pour traiter les cas de synthèse et non regroupés en agrégats.Handles d'objet unique d' CComPolyObject les deux cas.Cela signifie qu'une copie du pointeur vtable et une copie des fonctions existent dans votre package.Si votre pointeur vtable est important, cela peut considérablement réduire la taille du module.Toutefois, si votre pointeur vtable est petite, à l'aide de CComPolyObject peuvent entraîner une taille légèrement plus grande de module car elle n'est pas optimisée pour un objet de synthèse ou non regroupé en agrégats, de même qu' CComAggObject et CComObject.
La macro d' DECLARE_POLY_AGGREGATABLE est automatiquement déclarée dans votre objet si vous utilisez l'Assistant Contrôle ATL pour créer un contrôle total.
Configuration requise
Header: atlcom.h