Compartilhar 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 da classe que você está definindo como aggregatable ou não aggregatable.

Comentários

Durante a criação, o valor de desconhecido externo é verificado.Se é NULO, IUnknown é implementado para um objeto nonaggregated.Se o não externo não é NULO, IUnknown é implementado para um objeto agregado.

A vantagem de usar DECLARE_POLY_AGGREGATABLE é que você evita ter CComAggObject e CComObject em seu módulo para manipular o caso agregados e nonaggregated.Identificadores únicos de objeto de CComPolyObject ambos os casos.Isso significa que apenas uma cópia de vtable e uma cópia das funções existem no seu módulo.Se seu vtable é grande, isso pode reduzir significativamente o tamanho do módulo.Em o entanto, se seu vtable é pequeno, usar CComPolyObject pode resultar em um tamanho maior um pouco de módulo porque não é otimizado para um objeto agregado ou nonaggregated, como é CComAggObject e CComObject.

A macro de DECLARE_POLY_AGGREGATABLE está declarado automaticamente no seu objeto se você usar o assistente de controle de ATL para criar um controle completo.

Requisitos

Cabeçalho: atlcom.h

Consulte também

Referência

Classe de CComPolyObject

Classe de CComAggObject

Classe de CComObject

Outros recursos

Macros de fábrica de distribuição e uma classe

Macros de ATL