次の方法で共有


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 はターゲットで宣言されていません。

注: .NET for Windows ストア アプリ または ポータブル クラス ライブラリでは、代わりに catch Exception を使用します。

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

注: Windows ストア アプリまたはポータブル クラス ライブラリ用の .NET では、代わりに基本クラスの例外 MemberAccessExceptionである をキャッチします。

注釈

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

が COM オブジェクトの場合 target 、このメソッドは メソッドを使用してデリゲートをイベントに 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 値です。

適用対象