我们有一个32位应用程序,它与64位COM控件连接。为了处理接口,我创建了一个64位COM对象,它驻留在本地服务器(exe)中。此本地服务器对象实现与COM控件相同的接口,并简单地传递调用。除了那些以VARIANT *作为参数的接口函数外,一切正常。我猜这个问题是指针大小的差异。我该怎么做才能解决这个问题?
变体*持有BSTR。这是来自IDL的片段,显示了函数调用:
[id(5), helpstring("method GetSystemInfo")] HRESULT GetSystemInfo([in] LONG InfoID, [in] LONG Channel, [in,out] VARIANT* InfoVal);
由于
答案 0 :(得分:1)
我明白了。使用VARIANT时,我需要在调用之前设置v.bstrVal = NULL。