描述:
我的COM组件有一个接口,现在想扩展它的功能,打算继承这个接口。
//MYIDL.IDL
interface ILyqUniversalPort : IUnknown
{
HRESULT FindWorkingPort(
[in]PORTINFO * pPortInfo,
[out, retval]long * pPortHandle
);
HRESULT GetPortInfo(
[in]long * pPortHandle,
[out, retval]PORTINFO * pPortInfo
);
};
interface ILyqWinsockPort : ILyqUniversalPort
{
HRESULT FindPortFromRemoteIP(
[in]char IPAddress[16],
[in, out]long * pcPortNumber,
[in, out, size_is(*pcPortNumber)]long PortHandle[]
);
};
//MYCOM.H
class ATL_NO_VTABLE CLyqSocketComn :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CLyqSocketComn, &CLSID_LyqSocketComn>,
public ISupportErrorInfo,
public ILyqUniversalPort,
public ILyqWinsockPort
{
};
//ERROR
error C2584: 'CLyqSocketComn' : direct base 'ILyqSocketComn' is inaccessible; already a base of 'ILyqUniversalPort'
我知道这是虚拟继承的问题,可是不能解决,请各位大虾火速赐教!