Error del compilador C3708
"interface": uso incorrecto de "keyword"; debe ser miembro de un origen de eventos compatible
Para declarar una interfaz como un evento, la declaración de evento debe estar en un origen de eventos.
El ejemplo siguiente genera el error C3708:
// C3708.cpp
// compile with: /c
#define _ATL_ATTRIBUTES 1
#include "atlbase.h"
#include "atlcom.h"
[ module(name="MyLibrary")];
[ object, uuid("00000000-0000-0000-0000-000000000001") ]
__interface I {
HRESULT func();
};
[ object, uuid("00000000-0000-0000-0000-000000000002") ]
__interface II {
HRESULT func();
};
__event __interface I; // C3708
// put the event in an event source
[ coclass, event_source(com), uuid("00000000-0000-0000-0000-000000000003") ]
struct E : II {
__event __interface II;
};