Re[20]: ActiveX и Word.
От: Dima2  
Дата: 08.08.01 19:25
Оценка:
Ну вроде поборол эту заразу.

Ф-я Save все-таки не вызывалась, т.к. IsDirty возвращал E_FAIL (не надо сохранять данные). После изменения своих св-в вручную вызываю
SetDirty(TRUE) или можно m_bRequiresSave = 1;. Может кто-то автоматом
должен вызывать SetDirty() ?

Сохранение св-в делаю руками, т.к. при загрузке и сохранении данных
действительно вылазит какой-то непонятный IDispatch, хотя откуда он
берется ?

Карта св-в сохраняется нормально только для "сырых" св-в (PROP_DATA_ENTRY),
если же св-во необходимо получать через IDispatch (PROP_ENTRY), то ошибка.

PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
// PROP_ENTRY("AlignText", 1, CLSID_NULL)


Да конечно сохранение руками немного некрасиво и объемно по тексту
..........
hr = var.ReadFromStream(pStm);
put_ShowText(var.boolVal);

hr = var.ReadFromStream(pStm);
put_CalcCheck(var.boolVal);
..........

Может кто знает чего вылазит странный IDispatch в Load и Save ?
Я пробовал сам получить IDispatch внутри своего компонента, тоже
вылазит чужой, если получаю IDispatch из другой программы, то
все в порядке ???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.