다음을 통해 공유


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