Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Indica que a classe dá suporte à agregação.
Sintaxe
[ aggregatable(value) ]
Parâmetros
value
(Opcional) Um parâmetro para indicar quando o objeto COM pode ser agregado:
neverO objeto COM não pode ser agregado.allowedO objeto COM pode ser criado diretamente ou pode ser agregado. Esse é o padrão.alwaysO objeto COM não pode ser criado diretamente e só pode ser agregado. Ao chamarCoCreateInstancepara esse objeto, você deve especificar a interfaceIUnknowndo objeto de agregação (o controleIUnknown).
Comentários
O atributo C++ aggregatable tem a mesma funcionalidade que o atributo MIDL aggregatable. Isso significa que o compilador passará o atributo aggregatable para o arquivo .idl gerado.
Esse atributo requer que o atributo coclass, progid ou vi_progid (ou outro atributo que implique um desses) também seja aplicado ao mesmo elemento. Se qualquer atributo único for usado, os outros dois serão aplicados automaticamente. Por exemplo, se progid for aplicado, vi_progid e coclass também serão aplicados.
Projetos ATL
Se esse atributo for usado em um projeto que usa ATL, o comportamento do atributo será alterado. Além do comportamento descrito anteriormente, o atributo também adiciona uma das seguintes macros à classe de destino:
| Valor do parâmetro | Macro inserida |
|---|---|
Never |
DECLARE_NOT_AGGREGATABLE |
Allowed |
DECLARE_POLY_AGGREGATABLE |
Always |
DECLARE_ONLY_AGGREGATABLE |
Exemplo
// cpp_attr_ref_aggregatable.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"
[module(name="MyModule")];
[ coclass, aggregatable(allowed),
uuid("1a8369cc-1c91-42c4-befa-5a5d8c9d2529")]
class CMyClass {};
Requisitos
| Contexto do atributo | Valor |
|---|---|
| Aplicável ao | class, struct |
| Repetível | Não |
| Atributos obrigatórios | Um ou mais dos seguintes: coclass, progid ou vi_progid. |
| Atributos inválidos | Nenhum |
Para obter mais informações sobre os contextos de atributo, confira Contextos de atributo.
Confira também
Atributos de IDL
Atributos de classe
Atributos Typedef, Enum, Union e Struct
Agregação