次の方法で共有


aggregatable

クラスが集約をサポートすることを示します。

[ aggregatable( 
   value
) ]

パラメーター

  • 評価 します (省略可能)
    COM オブジェクトがいつ集約できるかを示すパラメーター :

    • COM オブジェクトは集約することはできません。

    • 割り当てられた COM オブジェクトを直接作成できます。また集計できます。これは、既定の設定です。

    • 必ず COM オブジェクトを直接作成し集計できます。このオブジェクトの CoCreateInstance を呼び出すと集約オブジェクトの IUnknown インターフェイス (コントロールの IUnknown) を指定する必要があります。

解説

aggregatable C++ 属性に aggregatable の MIDL の属性と同じ機能があります。これはコンパイラで生成された .idl ファイルに aggregatable の属性を渡すことを意味します。

この属性は コクラスProgIDまたは vi_progid の属性 (そのうちの 1 つを意味する属性を適用することを同じ要素に必要です。の一つの属性が使用されそのほかの 2 つが自動的に適用されます。たとえばProgID が適用されている場合vi_progidコクラス も適用されます。

ATL プロジェクト

この属性はATL を使用してプロジェクト内で使用する場合は属性の動作が変わります。前に説明した動作だけでなく属性もターゲット クラスに次のマクロに 1 を追加します :

パラメーター値

挿入するマクロ

なし

DECLARE_NOT_AGGREGATABLE

許可

DECLARE_POLY_AGGREGATABLE

常時

DECLARE_ONLY_AGGREGATABLE

使用例

// 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 {};

必要条件

属性コンテキスト

対象

クラス struct

複数回の適用

必要な属性

次の一つ以上 : コクラス ProgIDまたは vi_progid

無効な属性

なし

属性コンテキストの詳細については、「属性コンテキスト」を参照してください。

参照

関連項目

Aggregation

その他の技術情報

IDL 属性

クラス属性

Typedef、Enum、Union、および Struct 型の属性

Attributes Samples