次の方法で共有


ICollectionOnSTLImpl クラス

このクラスでは、コレクション クラスで使用されるメソッドが提供されます。

構文

template <class T, class CollType, class ItemType, class CopyItem, class EnumType>
class ICollectionOnSTLImpl : public T

パラメーター

T
COM コレクション インターフェイス。

CollType
C++ 標準ライブラリ コンテナー クラス。

アイテムの種類
コンテナー インターフェイスによって公開される項目の型。

CopyItem
コピー ポリシー クラス

EnumType
CComEnumOnSTL と互換性のある列挙子クラス。

メンバー

パブリック メソッド

名前 説明
ICollectionOnSTLImpl::get__NewEnum コレクションの列挙子オブジェクトを返します。
ICollectionOnSTLImpl::getcount コレクション内の要素の数を返します。
ICollectionOnSTLImpl::get_Item コレクションから要求された項目を返します。

パブリック データ メンバー

名前 説明
ICollectionOnSTLImpl::m_coll コレクションです。

解説

このクラスでは、コレクション インターフェイスの 3 つのメソッド (getcountget_Item、および get__NewEnum) の実装を提供します。

このクラスを使用するには、次のようにします。

  • 実装するコレクション インターフェイスを定義 (または借用) します。

  • このコレクション インターフェイスに基づいて、ICollectionOnSTLImpl の特殊化からクラスを派生させます。

  • 派生クラスを使用して、ICollectionOnSTLImpl によって処理されないコレクション インターフェイスからメソッドを実装します。

Note

コレクション インターフェイスがデュアル インターフェイスの場合は、クラスを IDispatchImpl から派生させ、ATL で IDispatch メソッドの実装を提供する場合に最初のテンプレート パラメーターとして ICollectionOnSTLImpl 特殊化を渡します。

  • コレクションに読み込むために m_coll メンバーに項目を追加します。

詳細と例については、「ATL コレクションと列挙子」を参照してください。

継承階層

T

ICollectionOnSTLImpl

要件

ヘッダー: atlcom.h

ICollectionOnSTLImpl::getcount

このメソッドは、コレクション内の項目の数を返します。

STDMETHOD(getcount)(long* pcount);

パラメーター

pcount
[出力] コレクション内の要素の数。

戻り値

標準の HRESULT 値。

ICollectionOnSTLImpl::get_Item

このメソッドでは、コレクションから指定された項目を返します。

STDMETHOD(get_Item)(long Index, ItemType* pvar);

パラメーター

インデックス
[入力] コレクション内の項目の 1 から始まるインデックス。

pvar
[出力] Index に対応する項目。

戻り値

標準の HRESULT 値。

解説

項目は、ICollectionOnSTLImpl 特殊化でテンプレート引数として渡されたコピー ポリシー クラスの copy メソッドを使用して、m_coll 内の指定された位置にあるデータをコピーすることで取得されます。

ICollectionOnSTLImpl::get__NewEnum

コレクションの列挙子オブジェクトを返します。

STDMETHOD(get__NewEnum)(IUnknown** ppUnk);

パラメーター

ppUnk
[出力] 新しく作成された列挙子オブジェクトの IUnknown ポインター。

戻り値

標準の HRESULT 値。

解説

新しく作成された列挙子では、元のコレクション m_coll の反復子を維持し (したがって、コピーは作成されない)、コレクション オブジェクトに対する COM 参照を保持して、未処理の列挙子がある間もコレクションが確実に存続するようにします。

ICollectionOnSTLImpl::m_coll

このメンバーでは、コレクションによって表される項目を保持します。

CollType m_coll;

関連項目

ATLCollections サンプル
クラスの概要