Aracılığıyla paylaş


CComEnumImpl::Init

Numaralayıcı arabirimi tüm istemciler için bir işaretçi geçirmeden önce bu yöntemini çağırmanız gerekir.

HRESULT Init(
   T* begin,
   T* end,
   IUnknown* pUnk,
   CComEnumFlags flags = AtlFlagNoCopy 
);

Parametreler

  • başlamak
    Numaralandırılacak öğe içeren dizinin ilk öğesi için bir işaretçi.

  • end
    Numaralandırılacak öğe içeren dizinin son öğesi yalnızca ötesinde konuma bir işaretçi.

  • pUnk
    [in] IUnknown fare işaretçisini nesnenin numaralayıcı yaşam süresi sırasında canlı tutulmalıdır.PASS null böyle bir nesne varsa.

  • flags
    Numaralayıcı dizi sahipliğini almak veya bir kopyasını oluşturmak olup olmadığını belirten bayrak.Olası değerler aşağıda açıklanmıştır.

Dönüş Değeri

Standart bir HRESULT değeri.

Notlar

Yalnızca bu yöntemi bir kez çağrı — numaralayıcı başlatmak, onu kullanın, sonra hemen throw.

Başka bir nesnenin içinde tutulan Dizideki öğelerin işaretçiler iletin (ve verileri kopyalamak için numaralayıcı sorma varsa) kullanabilirsiniz pUnk parametresini kullanarak numaralayıcı gerek duyan sürece nesne ve onu tutan dizi için kullanılabilir olduğundan emin olun.Numaralayıcı com başvurusu Canlı tutmak için nesne üzerinde sadece tutar.Numaralayıcı edildiði zaman com başvurusu otomatik olarak serbest bırakılır.

flags Parametresi numaralayıcı kendisine geçirilen dizi öğelerinin nasıl kabul etmelidir belirtmenize olanak verir.flagsdeğerlerden birini alabilir CComEnumFlags aşağıda gösterilen numaralandırma:

enum CComEnumFlags

{

AtlFlagNoCopy = 0,

AtlFlagTakeOwnership = 2, // BitOwn

AtlFlagCopy = 3 // BitOwn | BitCopy

};

AtlFlagNoCopy array içindeki yaşam Numaralandırıcı tarafından denetlenen yok anlamına gelir.Statik veya tarafından tanımlanan bir nesne ya da dizi böyle bir durumda olacaktır pUnk dizi artık gerekmediğinde boşaltma sorumlu olacak.

AtlFlagTakeOwnership bozma dizinin Numaralandırıcı tarafından denetlenmek üzere olduğu anlamına gelir.Bu durumda, dizi dinamik olarak kullanarak tahsis edilmiş olmalıdır Yeni.Numaralayıcı kendi yıkıcı dizisinde silinmesine neden olur.Genellikle, iºlem null için pUnk, numaralayıcı bozma herhangi bir nedenden dolayı bildirilmesi gerekiyorsa, geçerli işaretçi hala geçirebilirsiniz, ancak.

AtlFlagCopy geçirilen dizi kopyalayarak oluşturulacak yeni bir dizi olduğu anlamına Init.Yeni dizinin yaşam Numaralandırıcı tarafından kontrol etmektir.Numaralayıcı kendi yıkıcı dizisinde silinmesine neden olur.Genellikle, iºlem null için pUnk, numaralayıcı bozma herhangi bir nedenden dolayı bildirilmesi gerekiyorsa, geçerli işaretçi hala geçirebilirsiniz, ancak.

[!NOT]

Bu yöntem prototip türü olacak şekilde dizi öğelerini belirtir t, burada t sınıf şablonu parametre olarak tanımlanmış.Bu com arabirimi metodunun görüntülendiğine aynı tür, CComEnumImpl::Next.Bu dolaylı, aksine olan IEnumOnSTLImpl, bu sınıfın farklı depolama desteklemez ve maruz veri türleri.Veri türü, dizideki öğelerin kullandığı com arabirimi kullanarak veri türü ile aynı olması gerekir.

Gereksinimler

Başlık: atlcom.h

Ayrıca bkz.

Başvuru

CComEnumImpl sınıfı

IEnumOnSTLImpl::Init