Ошибка компилятора C3708
"interface": неправильное использование ключевого слова; должен быть членом совместимого источника событий
Чтобы объявить интерфейс как событие, объявление события должно находиться в источнике событий.
Следующий пример приводит к возникновению ошибки 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;
};