随笔 - 3  文章 - 8  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(3)

随笔档案

文章分类

文章档案

COM相关技术

搜索

  •  

最新评论

阅读排行榜

评论排行榜

通过实际代码验正:
1>COM里面确实存在套间。
2>进程内套间的同步防问确实走的是WINDOWS消息机制。
3>要是创建COM对象的那个套间被销毁了, 也不会说自动把该COM对象移到主套间中去。
     那么其它调用该COM对象的操作都将被阻塞。
     即使调用IUnknown接口中的三个基本函数,虽然并不会被阻塞,但内部还是会产生下面类似的异常:
     (被呼叫方(服务器 [不是服务器应用程序])不可用并已消失。所有连接均无效。没有执行呼叫。)
    至于MTA套间里的COM对象应该不会出现这个问题,因为MTA套间在程序中只有一个,并且一但创建,
    不大可能会被销毁。
    



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在进程内多个套间使用CoMarshalInterface等函数 共用接口的时候,
由CreateStreamOnHGlobal创建的流还是最好用GetHGlobalFromStream来获取其HGLOBAL内存句柄,
然后在相应套间中重新创建IStream 。要是 CoMarshalInterface 与 CoUnmarshalInterface 都用同一个IStream进行读写的话,
会在多于2个套间的情况下产生莫名奇妙的错误。
posted on 2009-01-12 17:01 鹿哥 阅读(494) 评论(0)  编辑 收藏 引用 所属分类: COM

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理