Události řízení (COM)
Kromě poskytování vlastností a metod poskytuje ovládací prvek také odchozí rozhraní, která upozorní klienta na události. Klient musí podporovat zpracování těchto událostí. Další informace o tom, jak připojitelné objekty fungují, najdete v tématu Události modelu COM a připojitelné objekty.
Ovládací prvek může podporovat různá odchozí rozhraní pro různé účely. Všechna odchozí rozhraní jsou v informacích o typu ovládacího prvku označena jako zdrojová rozhraní, ale jako výchozí je označena pouze jedna, která označuje, že se jedná o primární odchozí rozhraní.
Kontejner může podporovat jedno nebo více odchozích rozhraní definovaných ovládacím prvku. Ovládací prvek by měl být připravený na řešení kontejnerů, které poskytují podporu pouze pro některá z jejich odchozích rozhraní.
Ovládací prvky podporují čtyři druhy událostí:
- Vyžádání událostí. Ovládací prvek požaduje oprávnění od svého klienta, aby něco udělal voláním metody v odchozím rozhraní, čímž se aktivuje událost požadavku. Klient signalizuje řízení prostřednictvím logického out-parametru v metodě, kterou volal ovládací prvek. Klient tak může ovládacímu prvku zabránit v provedení akce.
- Před událostmi. Ovládací prvek oznámí klientovi, že něco udělá voláním metody v odchozím rozhraní, čímž aktivuje událost před událostí. Klient nemá možnost zabránit akci, ale může provést jakékoli nezbytné kroky s ohledem na akci, která se chystá nastat.
- Po událostech. Ovládací prvek upozorní svého klienta, že právě něco udělal voláním metody v odchozím rozhraní, čímž se aktivuje po události. Klient tuto akci znovu nemůže zrušit, ale může provést nezbytné kroky vzhledem k akci, ke které došlo.
- Proveďte události. Ovládací prvek aktivuje událost provedení, která klientovi umožní přepsat akci ovládacího prvku a poskytnout některé alternativní nebo doplňkové akce. Metoda, kterou ovládací prvek volá událost do má řadu parametrů pro vyjednávání s klientem o akcích, ke kterým dojde.
Následující dispidy jsou definovány pro standardní události, které ovládací prvky mohou podporovat: Click, DblClick, KeyDown, KeyPress, KeyUp, MouseMove, MouseUp a Error. Všechny tyto standardní události mají záporné hodnoty DISPID označující jejich standardní stav.
IOleControl::FreezeEvents metoda, při volání s TRUE, řekne ovládacímu prvku, zda kontejner bude obtěžovat zpracování událostí z ovládacího prvku, dokud FreezeEvents znovu volá s FALSE. Během tohoto časového řízení nemůže záviset na kontejneru, který ve skutečnosti zpracovává žádné události. Pokud musí být událost zpracována, ovládací prvek by měl zařazuje událost do fronty, aby ji aktivoval při FreezeEvents je volán s FALSE.
Související témata