Метод IPersistFile::Save (objidl.h)
Сохраняет копию объекта в указанный файл.
Синтаксис
HRESULT Save(
[in] LPCOLESTR pszFileName,
[in] BOOL fRemember
);
Параметры
[in] pszFileName
Абсолютный путь к файлу, в который должен быть сохранен объект. Если pszFileName имеет значение NULL, объект должен сохранить свои данные в текущем файле, если он имеется.
[in] fRemember
Указывает, следует ли использовать параметр pszFileName в качестве текущего рабочего файла. Если задано значение TRUE, pszFileName становится текущим файлом, и объект должен очистить флаг грязное после сохранения. Если задано значение FALSE, эта операция сохранения является операцией Сохранить копию как ... . В этом случае текущий файл не изменяется, и объект не должен очищать свой флаг грязное. Если pszFileName имеет значение NULL, реализация должна игнорировать флаг fRemember .
Возвращаемое значение
Если объект был успешно сохранен, возвращаемое значение будет S_OK. В противном случае это S_FALSE. Этот метод также может возвращать различные ошибки хранилища.
Комментарии
Этот метод можно вызвать для сохранения объекта в указанный файл одним из трех способов:
Реализующий объект должен определить, какой тип операции сохранения запрашивает вызывающий объект. Если параметр pszFileName имеет значение NULL, запрашивается параметр Сохранить . Если параметр pszFileName не имеет значение NULL, используйте значение параметра fRemember, чтобы различать параметры "Сохранить как" и "Сохранить как".
В операциях "Сохранить" или "Сохранить как" IPersistFile::Save очищает внутренний флаг грязное после сохранения и отправляет уведомления IAdviseSink::OnSave всем консультативным подключениям (см. также IOleAdviseHolder::SendOnSave). Кроме того, в этих операциях объект находится в режиме NoScribble, пока не получит вызов IPersistFile::SaveCompleted . В режиме NoScribble объект не должен выполнять запись в файл.
В сценарии "Сохранить как " реализация также должна отправлять уведомления IAdviseSink::OnRename всем консультативным подключениям (см. также IOleAdviseHolder::SendOnRename).
В сценарии Сохранить копию как реализация не очищает внутренний флаг грязное после сохранения.
Примечания к вызывающим абонентам
OLE не вызывает IPersistFile::Save. Как правило, приложения не вызывают его, если они не сохраняют объект в файл напрямую, который обычно остается на стороне конечного пользователя.Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | objidl.h |