У нас есть 32-битное приложение, которое взаимодействует с 64-битным COM-контролем.Чтобы обработать интерфейс, я создал 64-битный COM-объект, который находится на локальном сервере (exe).Этот объект локального сервера реализует тот же интерфейс, что и наш элемент управления COM, и просто передает вызовы.Все работает, кроме тех интерфейсных функций, которые принимают VARIANT * в качестве параметра.Я предполагаю, что проблема в разнице в размерах указателей.Что я могу сделать, чтобы решить эту проблему?
Variant * содержит BSTR.Вот фрагмент из IDL, показывающий вызов функции:
[id(5), helpstring("method GetSystemInfo")] HRESULT GetSystemInfo([in] LONG InfoID, [in] LONG Channel, [in,out] VARIANT* InfoVal);
Спасибо