聚合
指示对象的聚合 CLSID 指定的对象。
[ aggregates(
clsid,
variable_name
) ]
参数
clsid
指定可聚集的对象的 CLSID。variable_name
要插入变量的名称。该变量包含聚合的对象的 IUnknown 。
备注
当应用于对象, 聚合 C++ 特性实现合成对象的外部包装 (指定 clsid)。
此特性要求 coclass、 progid或 vi_progid 属性 (或表示这些中为) 的其他特性也适用于同一元素。如果使用任何单一属性,自动应用其他两个。例如,因此,如果 progid 是应用的,也适用 vi_progid 和 coclass 。
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 |
可重复 |
是 |
必需的特性 |
一个或多个以下各项: coclass、 progid或 vi_progid。 |
无效的特性 |
无 |
有关属性上下文的更多信息,请参见 属性上下文。
请参见
参考
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND