Re[14]: ActiveX и Word.
От: Ростислав Глухов Россия http://www.geocities.com/rg2204/
Дата: 03.08.01 10:25
Оценка:
Здравствуйте Аноним, вы писали:

А>Да ребята это все хорошо, но у меня метод Save вообще не вызывается.


А>Вернее он вызывается, но только при открытии документа *.doc, в следующей

А>последовательности:

А>IPersistStreamInitImpl::Load()

А>IPersistPropertyBagImpl::Save()
А>IPersistStorageImpl::Save()
А>IPersistStreamInitImpl::Save()

А>При сохранении же измененного документа ни Save ни Load не вызываются.


При открытии документа Word
— создает временный файл
— сохраняет старую копию
— сохраняет новую копию

при нажатии на кнопку с дискетой он [просто] этот временный файл переименовывает в настоящий

А>Вот такие пироги с котятами ...


А>А VB кстати вызывает IPersistPropertyBagImpl::Save() при нажатии

А>на кнопку "Сохранить", а при "Remove Project" вызывает
А>IPersistStreamInitImpl::Save().

VB хранит designtime свойства control'а в текстовом формате (посмотрите *.frm), поэтому использует(старается :) PropertyBag
Word хранит [вроде бы] в бинарном, поэтому достаточно PersistStream

А>Подозрение опять таки на карту интерфейсов, но я включил в нее уже все

А>что можно:

А>BEGIN_COM_MAP(CActiveBC)

А> .......
А> COM_INTERFACE_ENTRY(IPersistStreamInit)
А> COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit)
А> COM_INTERFACE_ENTRY(IPersistStorage)
А> COM_INTERFACE_ENTRY(IPersistPropertyBag)
А> COM_INTERFACE_ENTRY2(IPersistStream, IPersistStreamInit)
А> .......
А>END_COM_MAP()
Карта нормальная
- А Вы что курите?
— Минздрав предупреждает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.