__hook

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

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

매개 변수

  • **&**SourceClass::EventMethod
    이벤트 메서드를 이벤트 처리기 메서드에 연결에 대 한 포인터.

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

    • COM 이벤트: SourceClass 의 이벤트 소스 인터페이스와 EventMethod 메서드 중 하나입니다.

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

  • interface
    에 연결 하는 인터페이스 이름을 receiver는 COM 이벤트 수신기에 대 한의 layout_dependent 의 매개 변수는 event_receiver 특성입니다 true.

  • source
    인스턴스를 이벤트 소스에 대 한 포인터입니다.코드에 따라 type 에 지정 된 event_receiver, 원본 다음 중 하나가 될 수 있습니다.

    • 원시 이벤트 소스 개체 포인터입니다.

    • IUnknown-포인터 (COM 소스)를 기반으로 합니다.

    • 관리 되는 개체 포인터 (관리 되는 이벤트에 대 한)입니다.

  • **&**ReceiverClass::HandlerMethod
    이벤트 처리기 메서드를 이벤트에 연결 되도록에 대 한 포인터입니다.처리기 클래스 또는 동일 하 게 참조 하는 방법으로 지정 됩니다. 클래스 이름을 지정 하지 않으면 __hook 클래스에 메서드가 실제로 호출 되는 것으로 가정 합니다.

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

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

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

  • receiver(선택 사항)
    이벤트 수신기 클래스의 인스턴스에 대 한 포인터입니다.하는 수신기를 지정 하지 않으면 기본 수신기 클래스 또는 구조체는입니다 __hook 라고 합니다.

용도

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

설명

내장 함수 사용 __hook 연결 하거나 처리기 메서드 이벤트 메서드를 연결 하려면 이벤트 수신자에서.소스에서 지정 된 이벤트가 발생 하면 지정 된 처리기 다음 호출 됩니다.하나의 이벤트를 여러 처리기에 후크 하거나 단일 처리기에 여러 이벤트 연결 수 있습니다.

두 가지는 __hook.에 첫 번째 (네 인수) 형태로 대부분의 경우, 특히 COM 이벤트 수신기는 사용할 수 있는 layout_dependent 의 매개 변수는 event_receiver 특성입니다 false.

이 경우 인터페이스의 모든 메서드에 이벤트 메서드 중 하나를 시작 하기 전에 연결할 필요는 없습니다. 이벤트를 처리 하는 메서드만 연결 되도록 해야 합니다.두 번째 (두 인수) 형식으로 사용할 수 있습니다 __hook 는 COM 이벤트 수신기에 대 한 layout_dependent**= true**.

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

컴파일러 이벤트가 있는지 여부를 확인 및 이벤트 시그니처는 대리자 시그니처를 동의 해야 합니다.

COM 이벤트는 __hook 및 __unhook 외부 이벤트 수신기가 호출 될 수 있습니다.

사용 하는 대신 __hook + = 연산자를 사용 하는 것입니다.

새 구문에서는 관리 되는 이벤트 코드 작성에 대 한 내용은 이벤트 (Visual C++).

[!참고]

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

예제

참조 하십시오 네이티브 C++에서 처리 하는 이벤트이벤트 처리에 대 한 COM 샘플에 대 한.

참고 항목

참조

C + + 키워드

이벤트 처리

event_source

event_receiver

__unhook

__raise