Erro do compilador C3138
'interface': uma interface 'attribute' precisa herdar de IDispatch ou de uma interface que herda de IDispatch
Uma interface com os atributos dual ou dispinterface não tem IDispatch
como uma interface base direta ou indireta.
O seguinte exemplo gera o erro C3138:
// C3138.cpp
#include <unknwn.h>
[ object, uuid("77ac9240-6e9a-11d2-97de-0000f805d73b") ]
__interface IMyCustomInterface
{
HRESULT mf1(void);
};
[ dispinterface, uuid("3536f8a0-6e9a-11d2-97de-0000f805d73b") ]
__interface IMyDispInterface : IUnknown
{
[id(1)] HRESULT mf2(void);
};
[ object, dual, uuid("34e90a10-6e9a-11d2-97de-0000f805d73b") ]
__interface IMyDualInterface : IMyCustomInterface // C3138 expected
{
HRESULT mf3(void);
};