Share via


DECLARE_NOT_AGGREGATABLE

 

Specifies that your object cannot be aggregated.

Syntax

      DECLARE_NOT_AGGREGATABLE( 
   x  
)

Parameters

  • x
    [in] The name of the class object you are defining as not aggregatable.

Remarks

DECLARE_NOT_AGGREGATABLE causes CreateInstance to return an error (CLASS_E_NOAGGREGATION) if an attempt is made to aggregate onto your object.

By default, CComCoClass contains the DECLARE_AGGREGATABLE macro, which specifies that your object can be aggregated. To override this default behavior, include DECLARE_NOT_AGGREGATABLE in your class definition.

Example

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

   DECLARE_NOT_AGGREGATABLE(CNoAggClass)
};

Requirements

Header: atlcom.h

See Also

Aggregation and Class Factory Macros
ATL Macros
DECLARE_ONLY_AGGREGATABLE