Partilhar via


DECLARE_POLY_AGGREGATABLE

Especifica que uma instância de CComPolyObject <x> é criada quando o objeto é criado.

DECLARE_POLY_AGGREGATABLE( 
      x  
)

Parâmetros

  • x
    [in] O nome do objeto classe você está definindo como agregável ou não agregável.

Comentários

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ê evitar os 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 apenas uma Copiar da vtable e uma Copiar das funções existem em seu módulo.Se seu vtable for grande, isso pode diminuir significativamente 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 está 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 para Controlarar de ATL para criar um Controlarar Completo.

Requisitos

Cabeçalho: atlcom.h

Consulte também

Referência

Classe CComPolyObject

Classe CComAggObject

Classe CComObject

Outros recursos

Agregação e fábrica de classes macros

Macros ATL