'function': improper syntax for specifying event source in __hook/__unhook
When you specify an event source with __hook or __unhook, the source must be a valid method.
The following sample generates C3709:
#include <atlbase.h> #include <atlcom.h> #include <atlctl.h> [event_source(native)] class CEventSrc { public: __event void event1(); }; [event_receiver(native)] class CEventRec { public: void handler1() { } void HookEvents(CEventSrc* pSrc) { __hook(bad, pSrc, CEventRec::handler1); // C3709 // Try the following line instead: // __hook(CEventSrc::event1, pSrc, CEventRec::handler1); } void UnhookEvents(CEventSrc* pSrc) { __unhook(CEventSrc::event1, pSrc, CEventRec::handler1); } }; void main() { }