在旧版Win32应用程序中实现COM事件接收器

时间:2014-08-29 11:56:20

标签: c++ winapi com atl

我有一个需要使用COM对象的遗留Win32应用程序(WndProcs等)。使用一些ATL标题和一些智能指针,但是我目前正在努力解决的问题是如何最好地从COM对象中吸收事件?

我目前的工作计划是构建第二个COM对象(作为dll)来处理所有下沉并使用Windows消息与遗留应用程序进行通信。这是“好的”,但是有很多来回移动的信息来使遗留应用程序做我想做的事。

是否有一种易于访问的方法可以让Win32遗留应用程序直接接收COM事件而不是通过第二个“sinker”com对象运行?

在我深入了解这个过程之前,我想看看是否还有其他人遇到过这个问题并且有一个可行的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:3)

偶然发现了杰出的雷蒙德·陈(Raymond Chen)的优秀作品。

http://blogs.msdn.com/b/oldnewthing/archive/2013/06/12/10425215.aspx

正如WhozCraig所指出的那样,我需要的只是接口指针并设置Advise,处理Invoke。

很干净。

谢谢!