컴파일러 오류 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);
}
};