Pembekuan Peristiwa

Kontainer dapat memberi tahu kontrol bahwa tidak siap untuk menanggapi peristiwa dengan memanggil IOleControl::FreezeEvents dengan TRUE. Ini dapat mencairkan peristiwa dengan memanggil FreezeEvents dengan FALSE. Ketika kontainer membekukan peristiwa, kontainer membekukan pemrosesan peristiwa, bukan penerimaan peristiwa; artinya, kontainer masih dapat menerima peristiwa saat peristiwa dibekukan. Jika kontainer menerima pemberitahuan peristiwa saat peristiwanya dibekukan, kontainer harus mengabaikan peristiwa. Tidak ada tindakan lain yang sesuai.

Kontrol harus mencatat panggilan kontainer ke FreezeEvents dengan TRUE jika penting untuk kontrol bahwa peristiwa tidak terlewatkan. Saat pemrosesan peristiwa kontainer dibekukan, kontrol harus menerapkan salah satu teknik berikut:

  • Aktifkan peristiwa dalam pengetahuan penuh bahwa kontainer tidak akan mengambil tindakan.
  • Buang semua peristiwa yang akan diaktifkan kontrol.
  • Antre semua peristiwa yang tertunda dan aktifkan setelah kontainer memanggil FreezeEvents dengan FALSE.
  • Antrekan hanya peristiwa yang relevan atau penting dan aktifkan setelah kontainer memanggil FreezeEvents dengan FALSE.

Setiap teknik dapat diterima dan sesuai dalam keadaan yang berbeda. Pengembang kontrol bertanggung jawab untuk menentukan dan menerapkan teknik yang sesuai untuk fungsionalitas kontrol.