Re: ATL inheritance mistake
Like suggested in vcfaq#7, I moved the IAudioRecoder implementation to
a standalone one:
template <typename T>
class IAudioRecorderImpl : public IAudioRecorder, public AudioDevice
{..}
and in the CAudioRecorder class:
class ATL_NO_VTABLE CAudioRecorder :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CAudioRecorder, &CLSID_AudioRecorder>,
public ISupportErrorInfo,
public IConnectionPointContainerImpl<CAudioRecorder>,
public CProxy_IAudioRecorderEvents<CAudioRecorder>,
public IAudioRecorderImpl<CAudioRecorder>,
public IDispatchImpl<IAudioRecorder, &__uuidof(IAudioRecorder),
&LIBID_AxAudioLib4, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
CAudioRecorder(){};
DECLARE_REGISTRY_RESOURCEID(IDR_AUDIORECORDER)
DECLARE_NOT_AGGREGATABLE(CAudioRecorder)
BEGIN_COM_MAP(CAudioRecorder)
COM_INTERFACE_ENTRY(IAudioDevice)
COM_INTERFACE_ENTRY(IAudioRecorder) <<<< ERROR 1
COM_INTERFACE_ENTRY(IDispatch) <<<< ERROR 2
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY(IConnectionPointContainer)
END_COM_MAP()
but building I get the following:
1>CAudioRecorder.cpp
1>d:\src\eurocom\audiolib_4\axaudiolib4\src\caudiorecorder.h(44) :
error C2594: 'static_cast' : ambiguous conversions from
'CAudioRecorder::_ComMapClass *' to 'IAudioRecorder *'
1>d:\src\eurocom\audiolib_4\axaudiolib4\src\caudiorecorder.h(46) :
error C2594: 'static_cast' : ambiguous conversions from
'CAudioRecorder::_ComMapClass *' to 'IDispatch *'
Any Idea?
Thanks,
Daniele.