次の方法で共有


イベント処理インターフェイスの実装

ATL は、イベントの処理に必要な 3 つすべての要素の使用: イベント インターフェイスを実装し、イベント ソースとイベント ソースを unadvising に指示されます。に実行する必要がある正確な手順は、イベント インターフェイスの型と、アプリケーションのパフォーマンス要件によって異なります。

ATL を使用してインターフェイスを実装する最も一般的な方法は次のとおりです:

  • カスタム インターフェイスから直接派生します。

  • タイプ ライブラリに記述されているデュアル インターフェイスの IDispatchImpl から派生します。

  • タイプ ライブラリに記述されているディスパッチ インターフェイスの IDispEventImpl から派生します。

  • 実行時に型情報を読み込まないことで、効率を改善する場合のタイプ ライブラリに記述されていないディスパッチ インターフェイスの IDispEventSimpleImpl から取得するか。

カスタム、デュアル インターフェイスを実装する場合は、AtlAdviseCComPtrBase::Adviseを呼び出して、イベント ソースに指示する必要があります。独自の呼び出しによって返されるクッキーを追跡する必要があります。接続を解除呼び出し AtlUnadvise

IDispEventImplIDispEventSimpleImplを使用してディスパッチ インターフェイスを実装すると、IDispEventSimpleImpl::DispEventAdviseを呼び出して、イベント ソースに指示する必要があります。接続を解除呼び出し IDispEventSimpleImpl::DispEventUnadvise

複合コントロールの基本クラスとして IDispEventImpl を使用すると、シンク マップに示されたイベント ソースが自動的に表示され、CComCompositeControl::AdviseSinkMapを使用して unadvised です。

IDispEventImplIDispEventSimpleImpl のクラスは、のクッキーを管理します。

参照

概念

イベント処理と ATL