ComAwareEventInfo.RemoveEventHandler(Object, Delegate) メソッド

定義

COM オブジェクトからイベント ハンドラーをデタッチします。

public:
 override void RemoveEventHandler(System::Object ^ target, Delegate ^ handler);
public override void RemoveEventHandler(object target, Delegate handler);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public override void RemoveEventHandler(object target, Delegate handler);
override this.RemoveEventHandler : obj * Delegate -> unit
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
override this.RemoveEventHandler : obj * Delegate -> unit
Public Overrides Sub RemoveEventHandler (target As Object, handler As Delegate)

パラメーター

target
Object

イベント デリゲートがバインドされているターゲット オブジェクト。

handler
Delegate

イベント デリゲート。

属性

例外

イベントにパブリック remove アクセサーがありません。

渡されたハンドラーは使用できません。

target パラメーターはnullであり、イベントは静的ではありません。

-又は-

EventInfoはターゲットで宣言されていません。

呼び出し元には、メンバーへのアクセス許可がありません。

注釈

このメソッドは EventInfo.RemoveEventHandler(Object, Delegate) メソッドに似ていますが、COM オブジェクトからイベントをデタッチできる点が異なります。

targetが COM オブジェクトの場合、このメソッドは ComEventsHelper.Remove(Object, Guid, Int32, Delegate) メソッドを使用してデリゲートをイベントに解放します。

RemoveEventHandler は、対応するマネージド デリゲートに呼び出しを転送する COM イベント シンクの登録解除を容易にします。 次の情報が必要です。

  • ターゲット オブジェクト自体 (target)。

  • ソース インターフェイスの GUID。

  • 指定したイベントに対応する COM インターフェイス上のメソッドの DispID。

  • COM オブジェクトが対応するイベント (handler) をトリガーしたときに呼び出されるデリゲート。

RemoveEventHandler は、対応する COM ソース インターフェイス ( ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) コンストラクターの最初のパラメーターとして指定) を検索します。 次に、イベント名と同じ名前のソース インターフェイス上のメソッドを検索します。 ソース インターフェイスの GuidAttribute の値は、 ComEventsHelper.Remove(Object, Guid, Int32, Delegate)に渡される GUID です。メソッドの DispIDAttribute の値は、 ComEventsHelper.Remove(Object, Guid, Int32, Delegate)に渡される DispID 値です。

適用対象