Aracılığıyla paylaş


IEnumOnSTLImpl Sınıfı

Bu sınıf, C++ Standart Kitaplığı koleksiyonunu temel alan bir numaralandırıcı arabirimi tanımlar.

Sözdizimi

template <class Base,
    const IID* piid, class T, class Copy, class CollType>
class ATL_NO_VTABLE IEnumOnSTLImpl : public Base

Parametreler

Taban
COM numaralandırıcısı. Bir örnek için bkz . IEnumString .

piid
Numaralandırıcı arabiriminin arabirim kimliğinin işaretçisi.

T
Numaralandırıcı arabirimi tarafından kullanıma sunulan öğe türü.

Kopyala
Kopyalama ilkesi sınıfı.

CollType
C++ Standart Kitaplığı kapsayıcı sınıfı.

Üyeler

Genel Yöntemler

Veri Akışı Adı Açıklama
IEnumOnSTLImpl::Clone Clone uygulaması.
IEnumOnSTLImpl::Init Numaralandırıcıyı başlatır.
IEnumOnSTLImpl::Next İleri'nin uygulanması.
IEnumOnSTLImpl::Reset Sıfırlama'nın uygulanması.
IEnumOnSTLImpl::Skip Skip uygulaması.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
IEnumOnSTLImpl::m_iter Numaralandırıcının koleksiyondaki geçerli konumunu temsil eden yineleyici.
IEnumOnSTLImpl::m_pcollection Numaralandırılacak öğeleri tutan C++ Standart Kitaplığı kapsayıcısına bir işaretçi.
IEnumOnSTLImpl::m_spUnk Koleksiyonu IUnknown sağlayan nesnenin işaretçisi.

Açıklamalar

IEnumOnSTLImpl , numaralandırılan öğelerin C++ Standart Kitaplık uyumlu bir kapsayıcıda depolandığı COM numaralandırıcı arabiriminin uygulamasını sağlar. Bu sınıf, bir diziyi temel alan bir numaralandırıcı arabirimi için bir uygulama sağlayan CComEnumImpl sınıfına benzer.

Not

ve IEnumOnSTLImplarasındaki CComEnumImpl diğer farklar hakkında ayrıntılı bilgi için bkz. CComEnumImpl::Init.

Genellikle, bu arabirim uygulamasından türeterek kendi numaralandırıcı sınıfınızı oluşturmanız gerekmez . C++ Standart Kitaplık kapsayıcısını temel alan ATL tarafından sağlanan bir numaralandırıcı kullanmak istiyorsanız, CComEnumOnSTL örneği oluşturmak veya ICollectionOnSTLImpl'den türetilerek numaralandırıcı döndüren bir koleksiyon sınıfı oluşturmak daha yaygındır.

Ancak, özel bir numaralandırıcı sağlamanız gerekiyorsa (örneğin, numaralandırıcı arabirimine ek olarak arabirimleri kullanıma sunan bir numaralandırıcı), bu sınıftan türetebilirsiniz. Bu durumda, kendi uygulamanızı sağlamak için Clone yöntemini geçersiz kılmanız gerekebilir.

Devralma Hiyerarşisi

Base

IEnumOnSTLImpl

Gereksinimler

Üst bilgi: atlcom.h

IEnumOnSTLImpl::Init

Numaralandırıcıyı başlatır.

HRESULT Init(
    IUnknown* pUnkForRelease,
    CollType& collection);

Parametreler

pUnkForRelease
[in] IUnknown Numaralandırıcının ömrü boyunca canlı tutulması gereken bir nesnenin işaretçisi. Böyle bir nesne yoksa NULL değerini geçirin.

koleksiyon
Numaralandırılacak öğeleri barındıran C++ Standart Kitaplığı kapsayıcısına başvuru.

Dönüş Değeri

Standart bir HRESULT değeri.

Açıklamalar

Başka bir nesnede tutulan bir koleksiyona başvuru geçirirsenizInit, pUnkForRelease parametresini kullanarak sabitleyicinin ihtiyaç duyduğu sürece nesnenin ve içerdiği koleksiyonun kullanılabilir olduğundan emin olabilirsiniz.

Bir işaretçiyi numaralandırıcı arabirimine herhangi bir istemciye geri geçirmeden önce bu yöntemi çağırmalısınız.

IEnumOnSTLImpl::Clone

Bu yöntem, türünde CComEnumOnSTLbir nesnesi oluşturarak, bunu geçerli nesne tarafından kullanılan aynı koleksiyon ve yineleyici ile başlatarak ve yeni oluşturulan nesnede arabirimi döndürerek Clone yönteminin uygulanmasını sağlar.

STDMETHOD(Clone)(Base** ppEnum);

Parametreler

ppEnum
[out] Geçerli numaralandırıcıdan kopyalanan yeni oluşturulan bir nesnedeki numaralandırıcı arabirimi.

Dönüş Değeri

Standart bir HRESULT değeri.

IEnumOnSTLImpl::m_spUnk

Koleksiyonu IUnknown sağlayan nesnenin işaretçisi.

CComPtr<IUnknown> m_spUnk;

Açıklamalar

Bu akıllı işaretçi, IEnumOnSTLImpl::Init'e geçirilen nesne üzerinde bir başvuru tutar ve numaralandırıcının ömrü boyunca canlı kalmasını sağlar.

IEnumOnSTLImpl::m_pcollection

Bu üye, numaralandırıcı arabiriminin uygulanmasını sağlayan verileri sağlayan koleksiyona işaret eder.

CollType* m_pcollection;

Açıklamalar

Bu üye, IEnumOnSTLImpl::Init çağrısıyla başlatılır.

IEnumOnSTLImpl::m_iter

Bu üye, koleksiyondaki geçerli konumu işaretlemek ve sonraki öğelere gitmek için kullanılan yineleyiciyi tutar.

CollType::iterator m_iter;

IEnumOnSTLImpl::Next

Bu yöntem, Next yönteminin uygulanmasını sağlar.

STDMETHOD(Next)(
    ULONG celt,
    T* rgelt,
    ULONG* pceltFetched);

Parametreler

Celt
[in] İstenen öğe sayısı.

rgelt
[out] Öğelerle doldurulacak dizi.

pceltFetched
[out] Aslında rgelt içinde döndürülen öğelerin sayısı. Listede daha az celt öğesi kalırsa, bu değer celt değerinden küçük olabilir.

Dönüş Değeri

Standart bir HRESULT değeri.

IEnumOnSTLImpl::Reset

Bu yöntem Reset yönteminin uygulanmasını sağlar.

STDMETHOD(Reset)(void);

Dönüş Değeri

Standart bir HRESULT değeri.

IEnumOnSTLImpl::Skip

Bu yöntem Skip yönteminin uygulanmasını sağlar.

STDMETHOD(Skip)(ULONG celt);

Parametreler

Celt
[in] Atlana öğe sayısı.

Dönüş Değeri

Standart bir HRESULT değeri.

Ayrıca bkz.

Sınıfa Genel Bakış