Compilerfehler C2810

'Schnittstelle': Eine Schnittstelle kann nur von einer anderen Schnittstelle erben

Eine Schnittstelle darf nur von einer anderen Schnittstelle und nicht von einer Klasse oder Struktur erben.

Im folgenden Beispiel wird C2810 generiert:

// C2810.cpp
#include <unknwn.h>
class CBase1 {
public:
  HRESULT mf1();
  int  m_i;
};

[object, uuid="40719E20-EF37-11D1-978D-0000F805D73B"]
__interface IDerived : public CBase1 {  // C2810
// try the following line instead
// __interface IDerived {
   HRESULT mf2(void *a);
};

struct CBase2 {
   HRESULT mf1(int a, char *b);
   HRESULT mf2();
};