【发布时间】:2011-03-24 06:26:52
【问题描述】:
我正在寻找说明在 ATL COM 服务器 DLL 中进行跨线程 COM 调用的代码示例。知道吗?
更多细节:
我的组件是一个 IE 浏览器帮助对象,它需要在后台线程上工作。在从 IE 的主线程调用的对象方法之一中,IE 给了我一个指向 IE DOM (IHtmlWindow2) 的指针,我将它存储在本地成员变量中。
现在我想创建一个工作线程,它可以异步调用我刚刚存储的那个 COM 接口指针上的方法。
如果重要的话,我的调用将在我从从 IE 获取接口指针的方法返回后发生,因此当我尝试从我的工作线程进行调用时,IE(而不是我的代码)将拥有控制权。
我的组件和宿主应用程序都是单元线程的。
任何人都知道一个很好的 C++ 示例来展示这是如何完成的?
我特意寻找一个简短、直接的示例(不只是指向相关文档的指针),因为我阅读了 this question 及其答案并被学习我必须从头开始编写实现。任何时候有人建议在编写代码之前阅读 Don Box 的书,你就知道你会经历一个漫长而混乱的夜晚...... :-)
【问题讨论】:
标签: com marshalling atl bho apartments