Compilerfehler C3138

'Schnittstelle': eine 'Attribut'-Schnittstelle muss von IDispatch erben oder von einer Schnittstelle, die von IDispatch erbt

Eine Schnittstelle mit den Attributen dual oder dispinterface verfügt nicht über IDispatch als direkte oder indirekte Basisschnittstelle.

Im folgenden Beispiel wird C3138 generiert:

// 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);
};