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]對應至 Index 的專案。
傳回值
標準 HRESULT 值。
備註
項目是藉由使用在特製化中當做樣板自變數ICollectionOnSTLImpl
傳遞之複製原則類別的 copy 方法,在m_coll中指定的位置複製數據來取得。
ICollectionOnSTLImpl::get__NewEnum
傳回集合的列舉值物件。
STDMETHOD(get__NewEnum)(IUnknown** ppUnk);
參數
ppUnk
[out] 新建立列舉值物件的IUnknown 指標。
傳回值
標準 HRESULT 值。
備註
新建立的列舉值會在原始集合上維護反覆運算器( m_coll
因此不會建立任何復本),並在集合物件上保留 COM 參考,以確保集合在有未完成的列舉值時仍保持運作。
ICollectionOnSTLImpl::m_coll
這個成員會保存集合所代表的專案。
CollType m_coll;