我正在寻找一个代码示例,它说明在 ATL COM 服务器 DLL 中进行跨线程 COM 调用。认识一个?
更多细节:
我的组件是一个 IE 浏览器帮助对象,它需要在后台线程上工作。在从 IE 的主线程调用的对象方法之一中,IE 给了我一个指向 IE DOM ( IHtmlWindow2
) 的指针,我将它存储在一个本地成员变量中。
现在我想创建一个工作线程,它可以异步调用我刚刚存储的 COM 接口指针上的方法。
如果重要的话,我的调用将在我从 IE 获取接口指针的方法返回后发生,因此当我尝试从我的工作线程进行调用时,IE(而不是我的代码)将拥有控制权。
我的组件和宿主应用程序都是单元线程的。
任何人都知道一个很好的 C++ 示例来展示这是如何完成的?
我特别在寻找一个简短、直接的示例(而不仅仅是指向相关文档的指针),因为我阅读了这个问题及其答案,并且对从头开始编写实现所需的学习量感到害怕。任何时候有人建议在编写代码之前阅读 Don Box 的书,你就知道你要度过一个漫长而混乱的夜晚...... :-)