聚合

指示对象的聚合 CLSID 指定的对象。

[ aggregates(
   clsid,
   variable_name
) ]

参数

  • clsid
    指定可聚集的对象的 CLSID。

  • variable_name
    要插入变量的名称。 该变量包含聚合的对象的 IUnknown

备注

当应用于对象, 聚合 C++ 特性实现合成对象的外部包装 (指定 clsid)。

此特性要求 coclassprogidvi_progid 属性 (或表示这些中为) 的其他特性也适用于同一元素。 如果使用任何单一属性,自动应用其他两个。 例如,因此,如果 progid 是应用的,也适用 vi_progidcoclass

ATL 项目

如果此属性在使用 ATL 项目中使用,属性的行为更改。 首先,下面的项添加到目标对象的 COM 映射:

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)

接下来, DECLARE_GET_CONTROLLING_UNKNOWN 宏也添加。

示例

// cpp_attr_ref_aggregates.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"

// requires 'aggregatable.dll'
// see aggregatable attribute to create 'aggregatable.dll'
class DECLSPEC_UUID("1a8369cc-1c91-42c4-befa-5a5d8c9d2529") CMyClass;

[module (name="MYObject")];
[object, uuid("ab006d85-e754-47c5-9ef4-2744ff32a20c")]
__interface IObject
{
};

[ coclass, aggregates(__uuidof(CMyClass)), 
  uuid("91cb2c06-8931-432a-baac-206e55c4edfb")]
struct CObject : IObject
{
   int i;
};

要求

属性上下文

适用对象

, struct

可重复

必需的特性

一个或多个以下各项: coclassprogidvi_progid

无效的特性

有关属性上下文的更多信息,请参见 属性上下文

请参见

参考

Aggregation

Aggregatable

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND

其他资源

COM属性

选件类特性

Typedef、枚举、联合和Struct属性

Attributes Samples