Ошибка компилятора C3707
Function: метод dispinterface должен иметь диспидированный
Если используется dispinterface
метод, его dispid
необходимо назначить. Чтобы устранить эту ошибку, назначьте методу, например, раскомментируйте dispid
dispinterface
id
атрибут метода в примере ниже. Дополнительные сведения см. в разделах атрибутов dispinterface и id.
Следующий пример приводит к возникновению ошибки C3707:
// C3707.cpp
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>
[module(name="xx")];
[dispinterface]
__interface IEvents : IDispatch
{
HRESULT event1([in] int i); // C3707
// try the following line instead
// [id(1)] HRESULT event1([in] int i);
};
int main() {
}