Здравствуйте Аноним, вы писали:
А>Да ребята это все хорошо, но у меня метод 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()
Карта нормальная