佚名通过本文主要向大家介绍了
请较一个关于CoMarshalInterface的问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请较一个关于CoMarshalInterface的问题
描述:
解决方案1:
描述:
使用这个函数必须注册stub/proxy吗?CoMarshalInterThreadInterfaceInStream()呢?
解决方案1:
CoMarshalInterface的调用当然会用到stub/proxy dll,CoMarshalInterThreadInterfaceInStream也一样,列集时,存根管理器会动态绑定接口存根,而接口存根的实现在stub/proxy dll中,这个dll是通过注册表中相应接口键值下的ProxyStubClsid32指定的,不注册stub/proxy dll就没有这个值,那怎么列集?
顺便说一句,使用oleautomation或dual属性标示的接口使用通用列集器(ole32.dll),所以不用注册stub/proxy dll。
我直觉要类型支持才行,
我怕处理不好
一般
CoMarshalInterface(pIStream,IID_IUnknown,GetUnknown(),MSHCTX_INPROC,NULL,MSHLFLAGS_NORMAL);
然后通过IUnknown来QueryInterface
不用注册stub/proxy, CoMarshalInterThreadInterfaceInStream() 只是简单封装了CoMarshalInterface的一些操作,更易使用