DECLARE_POLY_AGGREGATABLE ( x )
Parâmetros
x
[no] O nome do objeto classe você está definindo como agregável ou não agregável.
Observações
Especifica que uma instância de CComPolyObject lt;x> é criado quando o objeto é criado. Durante a criação, o valor do desconhecido externo é marcado. Se for NULL, IUnknown é implementado para um objeto nonaggregated. Se o desconhecido externo não for NULL, IUnknown é implementado para um objeto agregado.
A vantagem de usar DECLARE_POLY_AGGREGATABLE é que você evite ter ambos CComAggObject e CComObject no seu módulo para lidar com os cAmbosos agregados e nonaggregated. Um objeto simples CComPolyObject lida com ambos os casos. Isso significa que somente um copiar da vtable e uma cópia das funções existem em seu módulo. Se seu vtable for grande, isso pode diminuir substancialmente o tamanho do módulo. No entanto, se seu vtable for pequeno, usar CComPolyObject pode resultar em um tamanho ligeiramente maior do módulo porque ele não é otimizado para um objeto agregado ou nonaggregated, como CComAggObject e CComObject.
A macro DECLARE_POLY_AGGREGATABLE automaticamente é declarada em seu objeto se você usar o Assistente de objeto ATL para criar um controle total ou controle do Internet Explorer.
Ver também