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

How to set a callback from C++ console application to a C++ COM DLL

本文关键字:C++ 回调 设置 COM DLL 应用程序 控制台      更新时间:2023-10-16

这是我试图解决的问题。

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

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

如何实现此类回调?

感谢您的帮助!

有一个示例程序可能对您的问题有所帮助。
这是一个名为 IPortableDevice/IPortableDeviceEventCallback 的专用接口示例。
项目根 便携式设备 COM API 示例
回调注册/发布部分 设备事件.cpp

作为常规用途原则,您使用的 COM-DLL 必须实现 IConnectionPoint 接口。
应用程序实现 IConnectionPointContainer 接口,并通过调用 IConnectionPoint::Advice 将该对象作为参数来注册 CallBack(=Event Handler(。

请使用 IConnectionPoint/IConnectionPointContainer 进行各种搜索。

没有其他代码示例,但也有这篇文章。
什么是 IconnectionPoint 和 EventHandling