イベント処理インターフェイスの実装
ATL は、イベントの処理に必要な 3 つすべての要素の使用: イベント インターフェイスを実装し、イベント ソースとイベント ソースを unadvising に指示されます。に実行する必要がある正確な手順は、イベント インターフェイスの型と、アプリケーションのパフォーマンス要件によって異なります。
ATL を使用してインターフェイスを実装する最も一般的な方法は次のとおりです:
カスタム インターフェイスから直接派生します。
タイプ ライブラリに記述されているデュアル インターフェイスの IDispatchImpl から派生します。
タイプ ライブラリに記述されているディスパッチ インターフェイスの IDispEventImpl から派生します。
実行時に型情報を読み込まないことで、効率を改善する場合のタイプ ライブラリに記述されていないディスパッチ インターフェイスの IDispEventSimpleImpl から取得するか。
カスタム、デュアル インターフェイスを実装する場合は、AtlAdvise か CComPtrBase::Adviseを呼び出して、イベント ソースに指示する必要があります。独自の呼び出しによって返されるクッキーを追跡する必要があります。接続を解除呼び出し AtlUnadvise。
IDispEventImpl か IDispEventSimpleImplを使用してディスパッチ インターフェイスを実装すると、IDispEventSimpleImpl::DispEventAdviseを呼び出して、イベント ソースに指示する必要があります。接続を解除呼び出し IDispEventSimpleImpl::DispEventUnadvise。
複合コントロールの基本クラスとして IDispEventImpl を使用すると、シンク マップに示されたイベント ソースが自動的に表示され、CComCompositeControl::AdviseSinkMapを使用して unadvised です。
IDispEventImpl と IDispEventSimpleImpl のクラスは、のクッキーを管理します。