Sdílet prostřednictvím


CComEnumImpl::Init

Tato metoda je třeba zavolat před předáním ukazatel rozhraní čítače výčtu zpět do všech klientů.

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

Parametry

  • začít
    Ukazatel myši na první prvek pole obsahující položky, které chcete provést výčet.

  • end
    Ukazatel na místo za poslední prvek pole obsahující položky, které chcete provést výčet.

  • pUnk
    [v] IUnknown ukazatel objektu, který během životnosti čítače výčtu musí zůstat naživu.Předat NULL Pokud takový objekt neexistuje.

  • flags
    Příznaky určující, zda by Čítač převzít vlastnictví pole nebo vytvořit jeho kopii.Možné hodnoty jsou popsány níže.

Vrácená hodnota

Standard HRESULT hodnotu.

Poznámky

Volání této metody pouze jednou – inicializovat čítače výčtu, použít a pak jej vyvolávají pryč.

Pokud ukazatele předat položky v poli v jiném objektu (a příště dotaz čítače výčtu kopírování dat), můžete pUnk parametr k zajištění objektu a pole má k dispozici jako čítače výčtu je potřebuje.Čítač jednoduše uchovává odkaz COM objektu udržet naživu.Odkaz modelu COM je uvolněna automaticky při čítače výčtu je zničen.

flags Parametr umožňuje určit, jak považovala čítače výčtu prvků pole předané.flagsmůže nabývat hodnot z CComEnumFlags výčtu níže:

enum CComEnumFlags

{

AtlFlagNoCopy = 0,

AtlFlagTakeOwnership = 2, // BitOwn

AtlFlagCopy = 3 // BitOwn | BitCopy

};

AtlFlagNoCopy se rozumí doba životnosti pole není řízen čítače výčtu.V tomto případě buď pole bude statické nebo objekt identifikován pUnk odpovědná za uvolňování pole je již potřeba.

AtlFlagTakeOwnership znamená, že zničení matice je kontrolován čítače výčtu.V tomto případě pole musí mít dynamicky přidělena pomocí nové.Čítač odstraníte pole v jeho destruktoru.Obvykle by předat NULL pro pUnk, ačkoli platný ukazatel můžete předat stále potřebujete z nějakého důvodu zničení čítač upozornění.

AtlFlagCopy znamená, že nové pole je vytvořen zkopírováním pole předané Init .Nové pole životnost je kontrolován čítače výčtu.Čítač odstraníte pole v jeho destruktoru.Obvykle by předat NULL pro pUnk, ačkoli platný ukazatel můžete předat stále potřebujete z nějakého důvodu zničení čítač upozornění.

[!POZNÁMKA]

Prototyp tato metoda určuje prvky pole jako typ t, kde t byla definována jako parametr šablony třídy.Toto je stejný typ, který je vystaven metodou rozhraní COM CComEnumImpl::Next.Je důsledků údajů o to, že na rozdíl od IEnumOnSTLImpl, tato třída nepodporuje jiné paměťové a vystaveny datové typy.Datový typ prvků v poli musí být stejný jako typ dat pomocí rozhraní COM vystaveny.

Požadavky

Záhlaví: atlcom.h

Viz také

Referenční dokumentace

Třída CComEnumImpl

IEnumOnSTLImpl::Init