在线程函数体中用CoUnmarshalInterface替代,问题就解决了。
百度了一翻资料,错误原因是CoGetInterfaceAndReleaseStream会自动释放STREAM, 所以。。。关闭窗体的时候就会报错。
如果非要使用CoGetInterfaceAndReleaseStream函数的话,就要在退出程序里加上代码 ExitProcess(0); 就没有问题了。
转:http://topic.csdn.net/u/20081210/15/f7a6d804-6549-4735-932c-af1904c89144.html
CoMarshalInterThreadInterfaceInStream能够在线程间安全的marshal接口,客户可以用 CoGetInterfaceAndReleaseStream unmarshal 出接口,线程间应该可以互相传递。
跨套间COM调用需要列散集。IStream可进程内共享,1次列集多次散集的场合建议使用全局接口表
|