DECLARE_POLY_AGGREGATABLE ( x )
Paramètres
x
[en] Le nom de l'objet de classe, que vous définissez comme agrégée ou non agrégées.
Remarques
Spécifie qu'une instance de CComPolyObject lt ;x> est créé lorsque votre objet est créé. Lors de la création, la valeur de l'inconnu externe est vérifiée. Si elle est NULL, IUnknown est mis en œuvre pour un objet non agrégée. Si l'inconnu externe n'est pas NULL, IUnknown est mis en oeuvre pour un objet agrégé.
L'avantage de l'utilisation de DECLARE_POLY_AGGREGATABLE , c'est que vous éviter d'avoir les CComAggObject et CComObject dans votre module pour gérer les affaires agrégés et non agrégées. Un seul objet CComPolyObject gère les deux cas. Cela ne signifie qu'une seule copie de la vtable et une copie des fonctions existent dans votre module. Si votre vtable est importante, cela peut réduire considérablement la taille de votre module. Toutefois, si votre vtable est petite, à l'aide de CComPolyObject peut entraîner une taille légèrement plus grande du module parce qu'il n'est pas optimisé pour un objet agrégé ou non agrégée, comme sont CComAggObject et CComObject.
La macro DECLARE_POLY_AGGREGATABLE est automatiquement déclarée dans votre objet si vous utilisez l'Assistant objet ATL pour créer un contrôle complet ou Internet Explorer.
Les Macros ATL et fonctions globales
Voir aussi
CComPolyObject, CComAggObject, CComObject