我试图通过包含另一个名为INvRtrProtocolEx3Itf的接口向COM对象添加一些功能。但是我在编译时遇到了错误。我已经研究了错误代码,并且该页面提供了一些examples错误以及如何修复错误但没有显示使用COM_INTERFACE_ENTRY方法的示例。
我在这里找到了类似的问题QUESTION 1和QUESTION 2,但它们都引用了BEGIN_MESSAGE_MAP错误,而不是BEGIN_COM_MAP错误......
我是COM的新手,但我正在开发一个广泛使用它的项目。我正在使用另一个COM对象作为参考,使用我想要添加的接口,但现在我被困在哪里修复此错误。 如何获取COM对象进行编译或在哪里可以解决问题?
这是代码
BEGIN_COM_MAP(CNvRtrProtocolXxxImpl)
COM_INTERFACE_ENTRY(INvRtrProtocolXxxItf)
COM_INTERFACE_ENTRY(INvRtrProtocol4Itf)
COM_INTERFACE_ENTRY(INvComponent3Itf)
//added the following line to add another interface
COM_INTERFACE_ENTRY(INvRtrProtocolEx3Itf) //throws error 1 (C2440)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP() //throws error 2 (C2440)
错误1
error C2440: 'static_cast': cannot convert from 'CNvRtrProtocolXxxImpl::_ComMapClass *' to 'INvRtrProtocolEx3Itf *'
错误2
error C2440: 'initializing': cannot convert from 'ATL::_ATL_CREATORARGFUNC (__cdecl *)' to 'DWORD_PTR'