如何设置从C ++控制台应用程序到C ++ COM DLL的回调

时间:2018-08-29 07:08:00

标签: c++ callback com atl

这是我要解决的问题。

我的C ++控制台应用程序正在与C ++ COM DLL交互。

在某些情况下,C ++ COM DLL需要将一些数据发送回控制台应用程序。我当时想传递一个回调(std :: function)作为DLL API之一的参数,但是我不知道COM是否支持。

如何实现此类回调?

谢谢您的帮助!

1 个答案:

答案 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