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 集合。

备注

此类为集合接口提供三种实现方法:getcountget_Itemget__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;

另请参阅

ATLCollections 示例
类概述