Kompilatorfel C3138

gränssnitt: ett attributgränssnitt måste ärva från IDispatch, eller från ett gränssnitt som ärver från IDispatch

Anmärkningar

Ett gränssnitt med attributen dubbla eller dispinterface har IDispatch inte som ett direkt eller indirekt basgränssnitt.

Example

I följande exempel genereras 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);
};