DECLARE_POLY_AGGREGATABLE ( x )
Parámetros
x
[en] El nombre del objeto de clase que se está definiendo como agregable o no agregables.
Observaciones
Especifica que una instancia de CComPolyObject lt;x> se crea cuando se crea el objeto. Durante la creación, se comprueba el valor de lo desconocido exterior. Si es NULL, se implementa IUnknown para un objeto nonaggregated. Si el desconocido exterior no es NULL, se implementa IUnknown para un objeto agregado.
La ventaja de usar DECLARE_POLY_AGGREGATABLE es que se evita tener CComAggObject y CComObject en el módulo para manejar los casos agregados y nonaggregated. Un único objeto CComPolyObject maneja ambos casos. Esto significa que existen solamente una copia de la vtable y una copia de las funciones en el módulo. Si tu vtable es grande, esto puede reducir considerablemente el tamaño del módulo. Sin embargo, si tu vtable es pequeño, utilizando CComPolyObject puede resultar en un tamaño ligeramente mayor de módulo porque no está optimizado para un objeto agregado o nonaggregated, como son CComAggObject y CComObject.
La macro DECLARE_POLY_AGGREGATABLE se declara automáticamente en su objeto si utiliza al Asistente para objetos ATL para crear un control total o el control de Internet Explorer.
ATL Macros y funciones globales
Véase también