ATL WindowLess Object创建的隐藏窗口如何接收工作线程Post的Message?

吹雪 2012-04-25 01:41:51
RT。

ATL工程,添加了一个Simple Object(ABCObject),使用Apartment套间模型,支持连接点。

IABCObject接口的某个方法需要创建一个工作线程,在工作线程需要为ABCObject激发事件(FireEvents),于是想通过在主线程创建隐藏窗口,工作线程PostMessage给该窗口,窗口再FireEvents,但是发现不知如何添加消息循环(消息泵)以使该隐藏窗口能响应消息。

不想使用ATLCPImplMT或者CDynamicUnkArrayGIT。。。就想用Hidden Window来解决问题。

谢谢。
...全文
195 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
吹雪 2012-04-26
  • 打赏
  • 举报
回复
晕,钻进牛角尖了,其实SetWindowLong就可以了。
fishion 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

先还是谢谢你们的回复!

但是麻烦请想清楚了再回复好不好,浪费我的时间倒不要紧,还浪费了您的时间!

如果我再创建一个线程来等待命名事件,这个线程还是得有一个方法来通知主线程进行FireEvents,那我何必多此一举呢?

atl simple object主线程创建的隐藏窗口如何响应工作线程Post过来的消息?也就是如何将主线程创建的隐藏窗口添加进消息循环并响应自定义消息?
[/Quote]
给线程传这个组件的类指针进去,然后再调用那些方法。
吹雪 2012-04-25
  • 打赏
  • 举报
回复
先还是谢谢你们的回复!

但是麻烦请想清楚了再回复好不好,浪费我的时间倒不要紧,还浪费了您的时间!

如果我再创建一个线程来等待命名事件,这个线程还是得有一个方法来通知主线程进行FireEvents,那我何必多此一举呢?

atl simple object主线程创建的隐藏窗口如何响应工作线程Post过来的消息?也就是如何将主线程创建的隐藏窗口添加进消息循环并响应自定义消息?
oyljerry 2012-04-25
  • 打赏
  • 举报
回复
专门用一个线程来接收事件等,然后这个线程再跟主线程通信交互
fishion 2012-04-25
  • 打赏
  • 举报
回复
你可以在组件中创建一个线程进行消息或事件的等待触发。这跟你创建一个窗口接收消息的思路是差不多的
吹雪 2012-04-25
  • 打赏
  • 举报
回复
您是不是弄错了?用socket之类的我的主线程怎么样才能知道什么时候需要激发事件,难道一直recv?
命名事件?我难道将主线程一直WaitForSingleObject吗?

不通。
fishion 2012-04-25
  • 打赏
  • 举报
回复
用命名事件也行
fishion 2012-04-25
  • 打赏
  • 举报
回复
可以用进程间通信的方法,命名管道,邮槽,socket等方法

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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