__unhook키워드(keyword)

이벤트에서 처리기 메서드를 연결 해제합니다.

참고 항목

네이티브 C++의 이벤트 특성은 표준 C++와 호환되지 않습니다. 규칙 모드를 지정할 /permissive- 때 컴파일되지 않습니다.

구문

long  __unhook(
   &SourceClass::EventMethod,
   source,
   &ReceiverClass::HandlerMethod
   [, receiver = this]
);

long  __unhook(
   interface,
   source
);

long  __unhook(
   source
);

매개 변수

&SourceClass::EventMethod
이벤트 처리기 메서드를 해제한 이벤트 메서드에 대한 포인터입니다.

  • 네이티브 C++ 이벤트: SourceClass 이벤트 원본 클래스이며 EventMethod 이벤트입니다.

  • COM 이벤트: SourceClass 이벤트 원본 인터페이스이며 EventMethod 해당 메서드 중 하나입니다.

  • 관리되는 이벤트: SourceClass 이벤트 원본 클래스이며 EventMethod 이벤트입니다.

interface
수신기에서 해제되는 인터페이스 이름이며, 특성의 layout_dependent 매개 변수가 있는 COM 이벤트 수신기에만 해당 event_receiver 합니다true.

source
이벤트 소스의 인스턴스에 대한 포인터입니다. 지정된 코드 typeevent_receiver에 따라 원본은 다음 형식 중 하나일 수 있습니다.

  • 네이티브 이벤트 소스 개체 포인터입니다.

  • IUnknownCOM 원본(-based pointer)입니다.

  • 관리되는 이벤트의 관리되는 개체 포인터입니다.

&ReceiverClass::HandlerMethod 이벤트에서 해제할 이벤트 처리기 메서드에 대한 포인터입니다. 처리기는 클래스의 메서드 또는 동일한 참조로 지정됩니다. 클래스 이름을 __unhook 지정하지 않으면 클래스가 호출되는 클래스로 가정합니다.

  • 네이티브 C++ 이벤트: ReceiverClass 이벤트 수신기 클래스이며 HandlerMethod 처리기입니다.

  • COM 이벤트: ReceiverClass 이벤트 수신기 인터페이스이며 HandlerMethod 해당 처리기 중 하나입니다.

  • 관리되는 이벤트: ReceiverClass 이벤트 수신기 클래스이며 HandlerMethod 처리기입니다.

receiver(선택 사항) 이벤트 수신기 클래스의 인스턴스에 대한 포인터입니다. 수신기를 지정하지 않으면 기본값은 호출되는 __unhook 수신기 클래스 또는 구조체입니다.

사용

이벤트 수신기 클래스 외부를 포함하여 main모든 함수 범위에서 사용할 수 있습니다.

설명

이벤트 수신기의 내장 함수 __unhook 를 사용하여 이벤트 메서드에서 처리기 메서드를 연결 해제하거나 "해제"합니다.

의 세 가지 형태가 있습니다 __unhook. 대부분 첫 번째(인수 4개) 형식을 사용할 수 있습니다. COM 이벤트 수신기에 대해서만 두 번째(두 인수) 형식 __unhook 을 사용할 수 있습니다. 전체 이벤트 인터페이스를 해제합니다. 세 번째(인수 1개) 형식을 사용하여 지정된 소스에서 모든 대리자를 언후크할 수 있습니다.

0이 아닌 반환 값은 예외가 발생했음을 나타냅니다(관리되는 이벤트가 예외를 throw함).

아직 연결되지 않은 이벤트 및 이벤트 처리기를 호출 __unhook 하는 경우 아무런 영향을 주지 않습니다.

컴파일할 때 컴파일러는 이벤트가 있는지 확인하고 지정된 처리기를 사용하여 매개 변수 형식을 검사합니다.

COM 이벤트를 제외하고 이벤트 수신기 외부에서 호출 __hook__unhook 할 수 있습니다.

사용에 __unhook 대한 대안은 -= 연산자를 사용하는 것입니다.

새 구문에서 관리되는 이벤트를 코딩하는 방법에 대한 자세한 내용은 이벤트를 참조하세요.

참고 항목

템플릿 기반 클래스 또는 구조체에 event를 포함시킬 수 없습니다.

예시

샘플은 네이티브 C++의 이벤트 처리 및 COM의 이벤트 처리를 참조하세요.

참고 항목

키워드
event_source
event_receiver
__event
__hook
__raise