共用方式為


事件凍結

容器可以透過使用 TRUE 呼叫 IOleControl::FreezeEvents,通知控件它尚未準備好回應事件。 它可以使用 FALSE 呼叫 FreezeEvents 來解除事件凍結。 當容器凍結事件時,它會凍結事件處理,而不是事件接收;也就是說,容器仍然可以在事件凍結時接收事件。 如果容器在其事件凍結時收到事件通知,容器應該忽略事件。 沒有其他動作是適當的。

如果控件對控件不遺漏事件很重要,則控件應該注意容器對FreezeEvents呼叫,如果控件沒有遺漏事件。 當容器的事件處理凍結時,控件應該實作下列其中一種技術:

  • 在完全瞭解容器不會採取任何動作時引發事件。
  • 捨棄控件會引發的所有事件。
  • 將所有擱置的事件排入佇列,並在容器呼叫 FreezeEvents 後引發它們,並搭配 FALSE
  • 只排入相關或重要事件佇列,並在容器呼叫 FreezeEvents 後引發它們,並搭配 FALSE

每種技術在不同情況下都是可以接受且適當的。 控件開發人員負責判斷及實作控件功能的適當技術。