如何调用另一线程的COM接口

real1986061901 2010-11-06 10:52:10
在程序的主线程里引入了一个外部COM组件,现在需要在新创建的线程使用这个COM的接口,该怎么使用,CoMarshalInterThreadInterfaceInStream可以吗?怎么用?望指点~
...全文
47 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
SecretGarden 2010-11-06
  • 打赏
  • 举报
回复
一个线程想要访问与其隶属于不同 Apartment 中的 COM 对象时,必须通过跨 Apartment 访问机制完成,这需要 COM 库的介入,并使用 Marshalling 技术。具体做法是:

在主线程中使用 CoMarshalInterThreadInterfaceInStream 来创建 IStream 接口并传递给后台线程,在后台线程中使用 CoGetInterfaceAndReleaseStream 从IStream 接口重新获取 COM 接口指针,然后使用它。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧