Поделиться через


Метод 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

См. также раздел

IPersistFile