次の方法で共有


IDispEventImpl クラス

このクラスは、IDispatch メソッドの実装を提供します。

重要

このクラスおよびメンバーは Windows ランタイムで実行されるアプリケーションで使用することはできません。

template < 
UINT nID, 
class T, 
const IID* pdiid= &IID_NULL, 
const GUID* plibid= &GUID_NULL, 
WORD wMajor= 0, 
WORD wMinor= 0, 
class tihclass= CcomTypeInfoHolder 
> 
class ATL_NO_VTABLE IDispEventImpl : 
public IDispEventSimpleImpl<nID, T, pdiid>

パラメーター

  • nID
    ソース オブジェクトの一意の識別子。 IDispEventImpl が複合コントロールの基本クラスの場合は、必要なコンテナー内のコントロールのリソース ID を使用します。 それ以外の場合は、任意の正の整数を使用します。

  • T
    IDispEventImpl から派生されるユーザーのクラス。

  • pdiid
    このクラスで実装されるイベントのディスパッチ インターフェイスの IID へのポインター。 このインターフェイスは plibid、wMajorと wMinorによって表示されるタイプ ライブラリで定義する必要があります。

  • plibid
    ディスパッチ インターフェイスを定義するタイプ ライブラリへのポインターが pdiidが指す。 &GUID_NULLがオブジェクトの調達、タイプ ライブラリから読み込まれるイベント。

  • wMajor
    タイプ ライブラリのメジャー バージョン。 既定値は 0 です。

  • wMinor
    タイプ ライブラリのマイナー バージョン。 既定値は 0 です。

  • tihclass
    T の型情報の管理に使用されるクラス。 既定値は型のクラスです CComTypeInfoHolder; ただし、CComTypeInfoHolder以外の型のクラスを使用して、このテンプレート パラメーターをオーバーライドできます。

メンバー

パブリック typedef

名前

説明

IDispEventImpl クラス

型情報を管理するために使用されるクラス。 既定では、CComTypeInfoHolder になります。

パブリック コンストラクター

名前

説明

IDispEventImpl::IDispEventImpl

コンストラクターです。

パブリック メソッド

名前

説明

IDispEventImpl::GetFuncInfoFromId

指定したディスパッチ識別子の関数のインデックスを検索します。

IDispEventImpl::GetIDsOfNames

対応する一連の DISPID 整数の引数の名前をの一つのメンバーおよびオプションのセット マップします。

IDispEventImpl::GetTypeInfo

オブジェクトの型情報を取得します。

IDispEventImpl::GetTypeInfoCount

型情報のインターフェイスの数を取得します。

IDispEventImpl::GetUserDefinedType

ユーザー定義型の基本型を取得します。

解説

IDispEventImpl には、インターフェイスのメソッドやイベントごとに実装コードを指定する必要なくイベントのディスパッチ インターフェイスを実装する方法が用意されています。 IDispEventImplIDispatch メソッドの実装を提供します。 指定する必要があるのは、処理の対象となるイベントの実装だけです。

IDispEventImpl はクラスのイベント シンク マップと連動し、適切なハンドラー関数にイベントをルーティングします。 このクラスを使用するには、次の手順に従います。

、処理する各オブジェクトのイベントごとに、イベント シンク マップに SINK_ENTRY または SINK_ENTRY_EX のマクロを追加します。 IDispEventImpl を複合コントロールの基本クラスとして使用すると、イベント シンク マップのエントリのすべてのイベント ソースの接続を確立し、中断するに AtlAdviseSinkMap を呼び出すことができます。 また、またはソース オブジェクトと基本クラス間の接続を確立するより細かく制御、呼び出し DispEventAdvise の場合は。 接続を解除するには、DispEventUnadvise を呼び出します。

イベントを処理する必要のあるオブジェクトごとに、nID に一意の値を指定して IDispEventImpl から派生させる必要があります。 1 個のソース オブジェクトに対するアドバイズを中止してから別のソース オブジェクトに対してアドバイズする基本クラスを再利用できますが、一度に処理できるソース オブジェクトの最大数は IDispEventImpl の基本クラスの数によって制限されます。

IDispEventImplIDispEventSimpleImplには、_ATL_FUNC_INFO の構造体へのポインターとして指定されたではなく、タイプ ライブラリからインターフェイスの型情報を取得する以外、同じ機能を提供します。 イベント インターフェイスを記述するタイプ ライブラリがない場合、タイプ ライブラリの使用に関連するオーバーヘッドを回避したくない場合に IDispEventSimpleImpl を使用します。

注意

が、メイン COM オブジェクト クラス メンバーへの直接アクセスを許可しながらIDispEventImplIDispEventSimpleImplIUnknown::QueryInterface の独自の実装を提供します。他の COM ID として機能する IDispEventImplIDispEventSimpleImpl の各基本クラスを有効にします。

ActiveX イベント シンクの CE ATL 実装は、HRESULT の戻り値またはイベント ハンドラーからの void のみをサポートします。その他の戻り値はサポートされていないため、動作は定義されません。

詳細については、「IDispEventImpl のサポート」を参照してください。

継承階層

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

IDispEventImpl

必要条件

ヘッダー : atlcom.h

参照

関連項目

_ATL_FUNC_INFO 構造体

IDispatchImpl クラス

IDispEventSimpleImpl クラス

SINK_ENTRY

SINK_ENTRY_EX

SINK_ENTRY_INFO

その他の技術情報

ATL クラスの概要