2

我有一个作为 .exe 运行的 com 服务器。这个 COM 服务器有两个 COM 实现。COM1 中有接口说“interface1”,COM2 有“interface2”。在“interface1”的一种方法中,比如 XYZ(IDispatch **pIDispatch),我使用“CoGetClassObject()”和“CLSCTX_LOCAL_SERVER”实例化了 COM2,并创建了“interface2”并通过该方法传递了它的“IDispatch”指针。

同一台机器上的客户端使用 COM Proxy DLL 与 COM Server 进行通信。客户端调用“interface1”方法 XYZ(),函数执​​行成功,但返回的 IDispatch 对客户端为 NULL。

机器是32位的。

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

4

1 回答 1

0

问题已解决,我没有在 idl 文件中为参数 IDispatch 使用关键字 [out, retval]。将其放入接口方法后。IDispatch 值已由 COM 服务器成功返回给客户端。

于 2012-06-27T09:19:22.703 回答