Sdílet prostřednictvím


Zmrazení událostí

Kontejner může upozornit ovládací prvek, že není připraven reagovat na události voláním IOleControl::FreezeEvents s TRUE. Může uvolnit události voláním FreezeEvents s FALSE. Když kontejner zablokuje události, zamrzne zpracování událostí, nepřijímají se události; to znamená, že kontejner může stále přijímat události, zatímco události jsou zablokovaný. Pokud kontejner obdrží oznámení o události, zatímco se události zablokují, měl by kontejner událost ignorovat. Žádná jiná akce není vhodná.

Ovládací prvek by měl vzít na vědomí volání kontejneru FreezeEvents s TRUE, pokud je důležité, aby ovládací prvek, že událost není zmeškaná. Zatímco zpracování událostí kontejneru je zablokovaný, měl by ovládací prvek implementovat jednu z následujících technik:

  • Aktivujte události v úplné znalosti, že kontejner nebude provádět žádnou akci.
  • Zahoďte všechny události, které by ovládací prvek aktivoval.
  • Zařadíte všechny čekající události do fronty a aktivujte je po zavolání kontejneru FreezeEvents s FALSE.
  • Zařadíte do fronty pouze relevantní nebo důležité události a aktivujte je po zavolání kontejneru FreezeEvents s FALSE.

Každá technika je přijatelná a vhodná za různých okolností. Vývojář ovládacího prvku zodpovídá za určení a implementaci vhodné techniky pro funkčnost ovládacího prvku.