コンパイラ エラー C3741
'class': event_receiver の 'layout_dependent' パラメーターが true の場合、コクラスでなければなりません
event_receiver クラスについて layout_dependent=true
の場合、クラスには coclass 属性も必要です。
次の例では C3741 が生成されます
// C3741.cpp
// compile with: /c
// C3741 expected
#define _ATL_ATTRIBUTES 1
#include <atlbase.h>
#include <atlcom.h>
[module(name="xx")];
[object, uuid("00000000-0000-0000-0000-000000000001")]
__interface I{ HRESULT f(); };
// Delete the following line to resolve.
[ event_receiver(com, layout_dependent=true)]
// class or struct must be declared with coclass
// Uncomment the following line to resolve.
// [ event_receiver(com, layout_dependent=true), coclass, uuid("00000000-0000-0000-0000-000000000002")]
struct R : I {
HRESULT f(){ return 0; }
R(){}
R(I* a){ __hook(I, a); }
};