'interface': 'attribute' インターフェイスは IDispatch、また IDispatch から継承したインターフェイスから継承する必要があります
dual または dispinterface 属性を持つインターフェイスには、直接または間接の基底インターフェイスとしての IDispatch
がありません。
次の例では 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);
};