Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, WizardOZ, Вы писали:
WOZ>>Подскажите пожалуйста каким образом нужно объявить кокласс?. Просто с COM моделью познакомился недавно, и все это программирование на основе интерфейсом мне еще не до конца понятно. Можно ли как-то по другому передать объект в JavaScript? И если возможно, то хотя бы какой-нибудь небольшой пример для понимания процесса.
Vi2>Да вроде с коклассом у тебя всё в порядке (ну или относительно всё в порядке, поскольку идеал в коде не достижим). Проблема в реализации свойства. Вот приемлемый вариант (для BSTR desc
:
Vi2>Vi2>STDMETHODIMP CShape::get_Description(/*[out,retval]*/ BSTR* pVal)
Vi2>{
Vi2>// *pVal = desc;
Vi2> *pVal = SysAllocString(desc); // делаем копию и передаем клиенту
Vi2> return S_OK;
Vi2>}
Vi2>STDMETHODIMP CShape::put_Description(/*[in]*/ BSTR newVal)
Vi2>{
Vi2>// desc = newVal;
Vi2> desc = SysAllocString(newVal); // делаем копию и сохраняем у себя
Vi2> return S_OK;
Vi2>}
Vi2>
Vi2>Посмотри Передача BSTR в ActiveX компонент на VC++ 6Автор: EM
Дата: 04.05.04
или поищи на сайте слова "in out клиент сервер" для более полной информации.
Спасибо огромное. Протестировал работу в IE 6.0, 8.0, полет нормальный.