Errore del compilatore C3743
può eseguire l'hook/unhook di un'intera interfaccia solo quando il parametro 'layout_dependent' di event_receiver è true
La funzione __unhook varia in base al numero di parametri che accetta in base al valore passato al layout_dependent
parametro nella classe event_receiver .
L'esempio seguente genera l'errore 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);
}
};