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

이벤트 대리자입니다.

특성

예외

이벤트에 public remove 접근자가 없습니다.

전달된 처리기를 사용할 수 없습니다.

target 매개 변수가 null 있고 이벤트가 정적이지 않습니다.

-또는-

EventInfo 대상에 선언되지 않았습니다.

호출자에게 멤버에 대한 액세스 권한이 없습니다.

설명

이 메서드는 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 값입니다.

적용 대상