У меня есть элемент управления ActiveX, который я написал с использованием ATL, и столкнулся с довольно серьезной и запутанной проблемой. Когда iDispatch :: Invoke вызывается с DISPATCH_PROPERTYPUT / METHOD, все в порядке. Когда я возвращаю значение в javascript IE, после вызова метода VT_BSTR с допустимым BSTR все работает нормально.
Но когда я пытаюсь:
var stringValue = Object.stringValue;
, который вызывает iDispatch, вызванный с флагом DISPATCH_PROPERTYGET, и я устанавливаю возвращаемое значение VT_BSTR с действительным BSTR (точно такое же, которое я использую с вызовами метода), я получаю окно ошибки отказа в разрешении в IE.
Когда я возвращаю различные другие типы данных (longs, integer, bools и т. Д.) В JavaScript, он работает нормально (с помощью метода propertyGet ()). Я получаю отказано в разрешении только при возврате VT_BSTR.
Есть идеи?