Erreur du compilateur C3138
'interface' : une interface 'attribute' doit hériter d’IDispatch, ou d’une interface qui hérite d’IDispatch
Une interface avec les attributs double ou dispinterface n’a IDispatch
pas comme interface de base directe ou indirecte.
L’exemple suivant génère l’erreur 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);
};