DECLARE_POLY_AGGREGATABLE

指定 CComPolyObject < x > 创建实例,当对象创建。

DECLARE_POLY_AGGREGATABLE( 
   x  
)

参数

  • x
    [in]要定义为可聚集的或不可聚集的选件类对象的名称。

备注

在创建时,外部未知的值进行检查。 如果是 NULLIUnknown 为一nonaggregated对象实现。 如果外部未知不是 NULLIUnknown 为一个复合的对象实现。

使用 DECLARE_POLY_AGGREGATABLE 的优点是您避免为 CComAggObjectCComObject 在的模块处理合成和nonaggregated大小写。 一个 CComPolyObject 对象处理两种情况。 这意味着只有一个副本的vtable和函数的一个副本存在于您的模块。 如果vtable大,则可以显着降低您的模块范围。 但是,因此,如果vtable很小,使用 CComPolyObject 从而导致一个稍微大的模块范围,因为它没有为一个复合的或nonaggregated对象转换,如 CComAggObjectCComObject

DECLARE_POLY_AGGREGATABLE 宏在对象自动声明是否使用ATL控件向导"创建完整的控件。

要求

Header: atlcom.h

请参见

参考

CComPolyObject选件类

CComAggObject选件类

CComObject选件类

其他资源

摘要任务和选件类工厂宏

ATL 宏