次の方法で共有


DECLARE_NOT_AGGREGATABLE

更新 : 2007 年 11 月

オブジェクトが集約できないことを指定します。

DECLARE_NOT_AGGREGATABLE( 
      x  
)

パラメータ

  • x
    [入力] 集約不可能なものとして定義するクラス オブジェクトの名前。

解説

オブジェクトへの集約を試みると、DECLARE_NOT_AGGREGATABLE によって CreateInstance からエラー (CLASS_E_NOAGGREGATION) が返されます。

既定では、CComCoClass は、オブジェクトが集約できることを指定する DECLARE_AGGREGATABLE マクロを含んでいます。この既定の動作をオーバーライドするには、DECLARE_NOT_AGGREGATABLE をクラス定義に含めます。

使用例

class ATL_NO_VTABLE CNoAggClass :
   public CComObjectRoot,
   public CComCoClass<CNoAggClass, &CLSID_NoAggClass>
{
public:
   CNoAggClass()
   {
   }

   DECLARE_NOT_AGGREGATABLE(CNoAggClass)
};

必要条件

ヘッダー : atlcom.h

参照

参照

DECLARE_ONLY_AGGREGATABLE

その他の技術情報

集約とクラス ファクトリに関するマクロ

ATL マクロ