다음을 통해 공유


컴파일러 오류 C3743

event_receiver의 'layout_dependent' 매개 변수가 true인 경우에만 전체 인터페이스를 후크/언후크할 수 있습니다.

__unhook 함수는 event_receiver 클래스의 매개 변수에 전달된 layout_dependent 값을 기반으로 하는 매개 변수 수에 따라 달라집니다.

다음 샘플에서는 C3743을 생성합니다.

// C3743.cpp
#define _ATL_ATTRIBUTES 1
#include <atlbase.h>
#include <atlcom.h>
[module(name="xx")];
[object] __interface I { HRESULT f(); };

[event_receiver(com, layout_dependent=true), coclass]
struct R : I {
        HRESULT f() {
      return 0;
   }
        R() {
   }

   R(I* a) {
      __hook(I, a, &R::f);   // C3743
      // The following line resolves the error.
      // __hook(I, a);
   }
};