Freigeben über


ICollectionOnSTLImpl-Klasse

Diese Klasse stellt Methoden bereit, die von einer Auflistungsklasse verwendet werden.

Syntax

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

Parameter

T
Eine COM-Sammlungsschnittstelle.

CollType
Eine C++-Standardbibliothek-Containerklasse.

Elementtyp
Der Typ des Elements, der von der Containerschnittstelle verfügbar gemacht wird.

CopyItem
Eine Kopierrichtlinienklasse.

EnumType
Eine CComEnumOnSTL-kompatible Enumeratorklasse.

Member

Öffentliche Methoden

Name Beschreibung
ICollectionOnSTLImpl::get__NewEnum Gibt ein Enumerationsobjekt für die Auflistung zurück.
ICollectionOnSTLImpl::getcount Ruft die Anzahl der Elemente in der Auflistung ab.
ICollectionOnSTLImpl::get_Item Gibt das angeforderte Element aus der Auflistung zurück.

Öffentliche Datenmember

Name Beschreibung
ICollectionOnSTLImpl::m_coll Die Auflistung.

Hinweise

Diese Klasse stellt die Implementierung für drei Methoden einer Sammlungsschnittstelle bereit: getcount, get_Item und get__NewEnum.

So verwenden Sie diese Klasse:

  • Definieren (oder ausleihen) Sie eine Sammlungsschnittstelle, die Sie implementieren möchten.

  • Leiten Sie Ihre Klasse von einer Spezialisierung ab, die ICollectionOnSTLImpl auf dieser Sammlungsschnittstelle basiert.

  • Verwenden Sie die abgeleitete Klasse, um methoden aus der Sammlungsschnittstelle zu implementieren, die nicht von ICollectionOnSTLImpl.

Hinweis

Wenn die Sammlungsschnittstelle eine duale Schnittstelle ist, leiten Sie Ihre Klasse von IDispatchImpl ab, und übergeben Sie die ICollectionOnSTLImpl Spezialisierung als ersten Vorlagenparameter, wenn ATL die Implementierung der IDispatch Methoden bereitstellen soll.

  • Fügen Sie dem element m_coll Elemente hinzu, um die Auflistung aufzufüllen.

Weitere Informationen und Beispiele finden Sie unter ATL-Auflistungen und Enumerationen.

Vererbungshierarchie

T

ICollectionOnSTLImpl

Anforderungen

Kopfzeile: atlcom.h

ICollectionOnSTLImpl::getcount

Diese Methode gibt die Anzahl der Elemente in der Auflistung zurück.

STDMETHOD(getcount)(long* pcount);

Parameter

pcount
[out] Die Anzahl der Elemente in der Auflistung.

Rückgabewert

Ein HRESULT-Standardwert.

ICollectionOnSTLImpl::get_Item

Diese Methode gibt das angegebene Element aus der Auflistung zurück.

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

Parameter

Index
[in] Der 1-basierte Index eines Elements in der Auflistung.

pvar
[out] Das Element, das dem Index entspricht.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Das Element wird durch Kopieren der Daten an der angegebenen Position in m_coll mithilfe der Kopierrichtlinienklasse abgerufen, die als Vorlagenargument in der ICollectionOnSTLImpl Spezialisierung übergeben wurde.

ICollectionOnSTLImpl::get__NewEnum

Gibt ein Enumerationsobjekt für die Auflistung zurück.

STDMETHOD(get__NewEnum)(IUnknown** ppUnk);

Parameter

ppUnk
[out] Der IUnknown-Zeiger eines neu erstellten Enumerationsobjekts.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

Der neu erstellte Enumerator verwaltet einen Iterator für die ursprüngliche Auflistung , m_coll(sodass keine Kopie erstellt wird) und enthält einen COM-Verweis auf das Auflistungsobjekt, um sicherzustellen, dass die Auflistung aktiv bleibt, während es ausstehende Enumerationen gibt.

ICollectionOnSTLImpl::m_coll

Dieses Element enthält die durch die Auflistung dargestellten Elemente.

CollType m_coll;

Siehe auch

ATLCollections-Beispiel
Klassenübersicht