次の方法で共有


イベントのフリーズ

コンテナーは、TRUEで IOleControl::FreezeEvents呼び出すことによって、イベントに応答する準備ができていないことをコントロールに通知できます。 FALSEFreezeEvents を呼び出すことで、イベントの凍結を解除できます。 コンテナーがイベントをフリーズすると、イベントの受信ではなく、イベント処理がフリーズします。つまり、イベントがフリーズしている間も、コンテナーは引き続きイベントを受信できます。 コンテナーがイベントの凍結中にイベント通知を受け取った場合、コンテナーはイベントを無視する必要があります。 他に適切なアクションはありません。

コントロールは、イベントが見落とされないことが重要な場合に、TRUE を使用して FreezeEventsするコンテナーの呼び出しをメモする必要があります。 コンテナーのイベント処理が固定されている間、コントロールは次のいずれかの手法を実装する必要があります。

  • コンテナーがアクションを実行しないという完全な知識でイベントを発生させます。
  • コントロールが発生したすべてのイベントを破棄します。
  • 保留中のすべてのイベントをキューに登録し、コンテナーが FALSE FreezeEvents を呼び出した後起動します。
  • 関連するイベントまたは重要なイベントのみをキューに登録し、コンテナーが FALSE FreezeEvents呼び出した後に起動します。

各手法は、さまざまな状況で許容され、適切です。 コントロール開発者は、コントロールの機能に適した手法を決定して実装する必要があります。