关于OCX中第二线程事件回传

 
 在OCX中非主线程中调用的事件
实现Com在工作线程中FireEvent的主要方法有:
1. PostMessage到主线程中,再由主线程消息响应函数FireEvent
2. 实现GIT(全局接口表),继承CComDynamicUnkArray_GIT类。
3. 继承IConnectionPointImplMT类。
4. 利用CoMarshalInterThreadInterfaceInStream和CoGetInterfaceAndReleaseStream
列集接口指针。
注意,2.3.4点都需要在工作线程中CoInitializeEx和CoUninitialize。

//

下面是jiangsheng(蒋晟.MSMVP2004Jan)老大的精彩回贴:

Knowledge Base Article Q157437: "Fireev.exe Fires Events from a Second Thread"
http://support.microsoft.com/support/kb/articles/q157/4/37.asp
Knowledge Base Article Q196026: "PRB: Firing Event in Second Thread Causes IPF or GPF"
http://support.microsoft.com/support/kb/articles/q196/0/26.asp
Michael Lindig's ATL: Firing events from worker threads article on CodeGuru.com
http://www.codeguru.com/atl/ThreadEvents.shtml
Knowledge Base Article Q280512: "SAMPLE: ATLCPImplMT Encapsulates ATL Event Firing Across COM Apartments"
http://support.microsoft.com/support/kb/articles/q280/5/12.asp
COM FAQ 11: HOWTO: Post messages to a hidden window for raising events from an Apartment-threaded object employing worker threads
http://www.mvps.org/vcfaq/com/11.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值