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.