DECLARE_POLY_AGGREGATABLE
指定 CComPolyObject < x > 创建实例,当对象创建。
DECLARE_POLY_AGGREGATABLE(
x
)
参数
- x
[in]要定义为可聚集的或不可聚集的选件类对象的名称。
备注
在创建时,外部未知的值进行检查。如果是 NULL,IUnknown 为一nonaggregated对象实现。如果外部未知不是 NULL,IUnknown 为一个复合的对象实现。
使用 DECLARE_POLY_AGGREGATABLE 的优点是您避免为 CComAggObject 和 CComObject 在的模块处理合成和nonaggregated大小写。一个 CComPolyObject 对象处理两种情况。这意味着只有一个副本的vtable和函数的一个副本存在于您的模块。如果vtable大,则可以显着降低您的模块范围。但是,因此,如果vtable很小,使用 CComPolyObject 从而导致一个稍微大的模块范围,因为它没有为一个复合的或nonaggregated对象转换,如 CComAggObject 和 CComObject。
DECLARE_POLY_AGGREGATABLE 宏在对象自动声明是否使用ATL控件向导"创建完整的控件。
要求
Header: atlcom.h