aggregates
개체가 CLSID에 의해 지정된 개체를 집계함을 나타냅니다.
구문
[ aggregates(clsid, variable_name) ]
매개 변수
clsid
집계할 수 있는 개체의 CLSID를 지정합니다.
variable_name
삽입될 변수의 이름입니다. 이 변수는 IUnknown
집계되는 개체를 포함합니다.
설명
개체에 적용하는 경우는 aggregates C++ 특성은 집계 중인 개체에 대해 외부 래퍼를 구현합니다( clsid
에 의해 지정됨).
이 특성을 사용하려면 coclass, progid또는 vi_progid 특성(또는 이 중 하나를 암시하는 다른 특성)을 동일한 요소에 적용해야 합니다. 단일 특성을 사용하는 경우 다른 두 특성도 자동으로 적용됩니다. 예를 들어 적용 vi_progid
되고 coclass
적용된 경우 progid
입니다.
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;
};
요구 사항
특성 컨텍스트 | 값 |
---|---|
적용 대상: | class , struct |
반복 가능 | 예 |
필수 특성 | 다음 중 하나 이상: coclass , progid 또는 vi_progid . |
잘못된 특성 | None |
특성 컨텍스트에 대한 자세한 내용은 특성 컨텍스트를 참조하세요.
참고 항목
COM 특성
클래스 특성
Typedef, Enum, Union 및 Struct 특성
집계
Aggregatable
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND