IDispatch从COM服务器返回NULL到客户端(客户端和服务器都在C ++中)

时间:2012-06-20 09:13:55

标签: c++ com

我有一个以.exe运行的com服务器。此COM服务器有两个COM实现。 COM1在其中有接口说" interface1"和COM2有" interface2"。在" interface1"的一种方法中说XYZ(IDispatch ** pIDispatch),我使用" CoGetClassObject()"来实例化COM2。使用" CLSCTX_LOCAL_SERVER"并创建了" interface2"并通过其#ID; IDispatch"通过该方法的指针。

同一台计算机上的客户端使用COM Proxy DLL与COM Server进行通信。客户电话" interface1"方法XYZ(),函数执行成功,但返回的IDispatch为NULL。

机器是32位。

有人可以说明为什么会这样,或者我想要得到的东西是不可能的。

1 个答案:

答案 0 :(得分:0)

isssue已经解决了我没有在参数IDispatch的idl文件中使用关键字[out,retval]。把它放在界面方法之后。 COM服务器将IDispatch值成功重新返回给客户端。