这是我要解决的问题。
我的C ++控制台应用程序正在与C ++ COM DLL交互。
在某些情况下,C ++ COM DLL需要将一些数据发送回控制台应用程序。我当时想传递一个回调(std :: function)作为DLL API之一的参数,但是我不知道COM是否支持。
如何实现此类回调?
谢谢您的帮助!
答案 0 :(得分:1)
有一个示例程序可能会对您的问题有所帮助。
这是一个称为IPortableDevice / IPortableDeviceEventCallback的专用接口的示例。
项目根Portable Devices COM API Sample
回调注册/发布部分DeviceEvents.cpp
作为通用原则,您使用的COM-DLL必须实现IConnectionPoint接口。
该应用程序实现IConnectionPointContainer接口,并通过以该对象作为参数调用IConnectionPoint :: Advice来注册CallBack(= Event Handler)。
请使用IConnectionPoint / IConnectionPointContainer进行各种搜索。
没有其他代码示例,但也有本文。
What is IconnectionPoint and EventHandling