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 IEnumOnSTLImpl
arası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 CComEnumOnSTL
bir 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.