ICollectionOnSTLImpl 类
此类提供集合类使用的方法。
语法
template <class T, class CollType, class ItemType, class CopyItem, class EnumType>
class ICollectionOnSTLImpl : public T
参数
T
COM 集合接口。
CollType
C++ 标准库容器类。
ItemType
容器接口公开的项的类型。
CopyItem
复制策略类。
EnumType
CComEnumOnSTL 兼容的枚举器类。
成员
公共方法
名称 | 描述 |
---|---|
ICollectionOnSTLImpl::get__NewEnum | 返回集合的枚举对象。 |
ICollectionOnSTLImpl::getcount | 返回集合中元素的数目。 |
ICollectionOnSTLImpl::get_Item | 从集合中返回请求的项目。 |
公共数据成员
“属性” | 描述 |
---|---|
ICollectionOnSTLImpl::m_coll | 集合。 |
备注
此类为集合接口提供三种实现方法:getcount、get_Item 和 get__NewEnum。
使用此类:
定义(或借用)要实现的集合接口。
从基于此集合接口的
ICollectionOnSTLImpl
专用化派生类。使用派生类从
ICollectionOnSTLImpl
未处理的集合接口中实现任何方法。
注意
如果集合接口是双重接口,请从 IDispatchImpl 中派生类,如果希望 ATL 提供 IDispatch
实现方法,请将 ICollectionOnSTLImpl
专用化作为第一个模板参数传递。
- 将项添加到 m_coll 成员以填充集合。
有关详细信息和示例,请参阅 ATL 集合和枚举器。
继承层次结构
T
ICollectionOnSTLImpl
要求
标头:atlcom.h
ICollectionOnSTLImpl::getcount
此方法返回集合中的项数。
STDMETHOD(getcount)(long* pcount);
参数
pcount
[out] 集合中的元素数。
返回值
标准 HRESULT 值。
ICollectionOnSTLImpl::get_Item
此方法从集合中返回指定的项。
STDMETHOD(get_Item)(long Index, ItemType* pvar);
参数
Index
in] 集合中项基于 1 的索引。
pvar
[out] 索引的对应项。
返回值
标准 HRESULT 值。
备注
通过使用在 ICollectionOnSTLImpl
专用化中作为模板参数传递的复制策略类的复制方法,复制 m_coll 中指定位置的数据来获取该项。
ICollectionOnSTLImpl::get__NewEnum
返回集合的枚举对象。
STDMETHOD(get__NewEnum)(IUnknown** ppUnk);
参数
ppUnk
[out] 新创建的枚举器对象的 IUnknown 指针。
返回值
标准 HRESULT 值。
注解
新创建的枚举器在原始集合 m_coll
上维护迭代器(因此不会复制)并保留集合对象的 COM 引用,以确保集合在存在未完成的枚举器时保持活跃状态。
ICollectionOnSTLImpl::m_coll
此成员保存由集合表示的项。
CollType m_coll;