이벤트 동결

컨테이너는 TRUE를 사용하여 IOleControl::FreezeEvents 를 호출하여 이벤트에 응답할 준비가 되지 않았다는 것을 컨트롤에 알릴 수 있습니다. FALSE를 사용하여 FreezeEvents를 호출하여 이벤트를 고정 해제할 수 있습니다. 컨테이너가 이벤트를 중지하면 이벤트 수신이 아니라 이벤트 처리가 중지됩니다. 즉, 이벤트가 고정된 동안 컨테이너는 이벤트를 계속 받을 수 있습니다. 이벤트가 고정된 동안 컨테이너가 이벤트 알림을 수신하는 경우 컨테이너는 이벤트를 무시해야 합니다. 다른 작업은 적절하지 않습니다.

이벤트가 누락되지 않는 컨트롤에 중요한 경우 컨트롤은 TRUE를 사용하여 FreezeEvents에 대한 컨테이너 호출을 기록해야 합니다. 컨테이너의 이벤트 처리가 고정된 동안 컨트롤은 다음 기술 중 하나를 구현해야 합니다.

  • 컨테이너가 아무 작업도 수행하지 않을 것이라는 완전한 지식으로 이벤트를 실행합니다.
  • 컨트롤이 발생한 모든 이벤트를 삭제합니다.
  • 보류 중인 모든 이벤트를 큐에 대기시키고 컨테이너가 FALSE를 사용하여 FreezeEvents를 호출한 후에 발생합니다.
  • 관련 이벤트 또는 중요한 이벤트만 큐에 대기하고 컨테이너가 FALSE를 사용하여 FreezeEvents를 호출한 후에 발생합니다.

각 기술은 다양한 상황에서 허용 가능하고 적절합니다. 컨트롤 개발자는 컨트롤의 기능에 적합한 기술을 결정하고 구현할 책임이 있습니다.