Метод IPersistStreamInit::Save (ocidl.h)

Сохраняет объект в указанном потоке.

Синтаксис

HRESULT Save(
  [in] LPSTREAM pStm,
  [in] BOOL     fClearDirty
);

Параметры

[in] pStm

Указатель IStream на поток, в котором должен быть сохранен объект.

[in] fClearDirty

Указывает, следует ли очистить «грязный» флаг после завершения сохранения. Если задано значение TRUE, флаг должен быть снят. Если значение РАВНО FALSE, флаг следует оставить без изменений.

Возвращаемое значение

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
STG_E_CANTSAVE
Объекту не удалось сохранить себя в потоке. Эта ошибка может указывать, например, на то, что объект содержит другой объект, который не сериализуется в поток, или что вызов ISequentialStream::Write вернул STG_E_CANTSAVE.
STG_E_MEDIUMFULL
Не удалось сохранить объект, так как на устройстве хранения не осталось места.

Комментарии

IPersistStreamInit::Save сохраняет объект в указанном потоке и указывает, должен ли объект сбросить флаг грязное.

Указатель поиска располагается в месте в потоке, с которого объект должен начать запись своих данных. Объект вызывает метод ISequentialStream::Write для записи своих данных.

При выходе указатель поиска должен располагаться непосредственно за данными объекта. Позиция указателя поиска не определена, если возвращается ошибка.

Примечания для разработчиков

Метод IPersistStreamInit::Save не записывает CLSID в поток. Вызывающий объект отвечает за запись ИДЕНТИФИКАТОРа CLSID.

Метод IPersistStreamInit::Save может считывать данные из потока, записывать в и искать в потоке; но он не должен стремиться к расположению в потоке перед расположением указателя поиска на входе.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ocidl.h

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

IPersistStreamInit