Zásady pro zpracování událostí
Tři kroky jsou společné pro všechny zpracování událostí.Bude nutné:
Implementace rozhraní události na objekt.
Že chce přijímat události objekt radí zdroj události.
Zdroj události Unadvise, když objekt již není třeba přijímat události.
Způsob, jakým budete implementovat rozhraní události závisí na jeho typu.Události rozhraní může být virtuální tabulka, dual nebo omezené rozhraní IDispatch.Je to na Návrhář zdroj události k definici rozhraní; je k implementaci rozhraní.
[!POZNÁMKA]
Přestože nejsou žádné technické důvody, které nemůže být duální rozhraní události, existuje řada důvodů dobrého návrhu vyhnout použití duals.To je však rozhodnutí provedené designer/rozhodující události zdroje.Jelikož pracujete z hlediska událost sink , je nutné povolit možnost nemáte žádné volby, ale implementovat rozhraní dvou událostí.Další informace o duální rozhraní, viz duální rozhraní a ATL.
Radí zdroj události lze rozdělit do tří kroků:
Dotaz na zdroj objektu pro IConnectionPointContainer.
Volání IConnectionPointContainer::FindConnectionPoint předávání IID rozhraní události, která vás zajímá.V případě úspěchu tato vrátí IConnectionPoint rozhraní v objektu spojovací bod.
Volání IConnectionPoint::Advise předávání IUnknown z jímky událostí.V případě úspěchu tato vrátí DWORD cookie představující připojení.
Po úspěšné registraci zájem o příjem událostí volat metody rozhraní daného objektu události, podle událostí spalovat zdrojového objektu.Potřebujete nadále přijímat události, můžete předat soubor cookie zpět do spojovacího bodu prostřednictvím IConnectionPoint::Unadvise.Tím dojde k přerušení připojení mezi zdrojem a jímky.
Snažte se vyhnout referenční cykly, při zpracování událostí.