error C2594: 'static_cast' and Multiple Inheritance
Hello,
I am trying to add a connection point to one of my already existing
class.
I can't get rid of the C2594: error.
I got a class template that I use for several class:
template <class T>
class ILanguageImpl : public T
{
public:
STDMETHODIMP get_Language(LONG* pVal)
{ ... }
};
Here is the class I add the connection point:
class ATL_NO_VTABLE CTranslator :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CTranslator, &CLSID_Translator>,
public IConnectionPointContainerImpl<CTranslator>,
public CProxy_ITranslatorEvents<CTranslator>,
public ILanguageImpl< IDispatchImpl< ITranslator,
&IID_ITranslator, &LIBID_InterfaceLib > >
{
DECLARE_REGISTRY_RESOURCEID(IDR_TRANSLATOR)
BEGIN_COM_MAP(CATRTranslator)
COM_INTERFACE_ENTRY(ITranslator)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IConnectionPointContainer)
END_COM_MAP()
BEGIN_CONNECTION_POINT_MAP(CTranslator)
CONNECTION_POINT_ENTRY(__uuidof(_ITranslatorEvents))
END_CONNECTION_POINT_MAP()
..... };
The problem occures when I create a COM interface pointers.
CComPtr<CTranslator> moTranslations;
error C2594: 'argument' : ambiguous conversions from 'CTranslator *' to
'IUnknown *'
I understand that when I try to create the COM interface pointer, it
can not choose between the ILanguageImpl and CProxy_ITranslatorEvents
IUnknow pointer.
Is there a way to "cast" which IUnknow pointer to use when creating the
CTranslator Class?
Thanks,
Barnab=E9