将32位指针传递给64位COM控件

将32位指针传递给64位COM控件,com,pointers,64-bit,Com,Pointers,64 Bit,我们有一个32位应用程序,它与64位COM控件接口。为了处理接口,我创建了一个64位COM对象,它驻留在本地服务器(exe)中。这个本地服务器对象实现了与我们的COM控件相同的接口,并且只传递调用。除了那些以变量*为参数的接口函数外,所有功能都正常工作。我猜问题在于指针的大小不同。我能做些什么来解决这个问题 变量*包含一个BSTR。以下是IDL中显示函数调用的代码段: [id(5), helpstring("method GetSystemInfo")] HRESULT GetSystemInf

我们有一个32位应用程序,它与64位COM控件接口。为了处理接口,我创建了一个64位COM对象,它驻留在本地服务器(exe)中。这个本地服务器对象实现了与我们的COM控件相同的接口,并且只传递调用。除了那些以变量*为参数的接口函数外,所有功能都正常工作。我猜问题在于指针的大小不同。我能做些什么来解决这个问题

变量*包含一个BSTR。以下是IDL中显示函数调用的代码段:

[id(5), helpstring("method GetSystemInfo")] HRESULT GetSystemInfo([in] LONG InfoID, [in] LONG Channel, [in,out] VARIANT* InfoVal);

谢谢

我想明白了。使用该变量时,我需要在调用之前设置v.bstrVal=NULL