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


Метод IStorage::OpenStream (objidl.h)

Метод OpenStream открывает существующий объект потока в этом объекте хранилища в указанном режиме доступа.

Синтаксис

HRESULT OpenStream(
  [in]  const OLECHAR *pwcsName,
  [in]  void          *reserved1,
  [in]  DWORD         grfMode,
  [in]  DWORD         reserved2,
  [out] IStream       **ppstm
);

Параметры

[in] pwcsName

Указатель на строку Юникода с широким символом, завершающуюся null, которая содержит имя открываемого потока. Символы от 000 до 01f, служащие как первый символ имени потока/хранилища, зарезервированы для использования OLE. Это ограничение составного файла, а ограничение структурированного хранения.

[in] reserved1

Зарезервировано для использования в будущем; значение должно иметь значение NULL.

[in] grfMode

Указывает режим доступа, назначаемый открытому потоку. Дополнительные сведения и описания возможных значений см. в разделе Константы STGM. Другие выбранные режимы должны по крайней мере указывать STGM_SHARE_EXCLUSIVE при вызове этого метода в реализации составного файла.

[in] reserved2

Зарезервировано для будущего использования; должно иметь значение нуль.

[out] ppstm

Указатель на переменную указателя IStream , которая получает указатель интерфейса на вновь открытый объект потока. Если возникает ошибка, *ppstm должно иметь значение NULL.

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

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK Поток был успешно открыт.
E_PENDING Только асинхронное хранилище. Часть или все потоковые данные в настоящее время недоступны.
STG_E_ACCESSDENIED Недостаточно разрешений для открытия потока.
STG_E_FILENOTFOUND Поток с указанным именем не существует.
STG_E_INSUFFICIENTMEMORY Поток не был открыт из-за нехватки памяти.
STG_E_INVALIDFLAG Значение, указанное для параметра grfMode , не является допустимым значением констант STGM .
STG_E_INVALIDFUNCTION Указанное сочетание флагов в параметре grfMode не поддерживается; Например, если этот метод вызывается без флага STGM_SHARE_EXCLUSIVE.
STG_E_INVALIDNAME Недопустимое значение для pwcsName.
STG_E_INVALIDPOINTER Недопустимый указатель, указанный для объекта потока.
STG_E_INVALIDPARAMETER Один из параметров был недопустимым.
STG_E_REVERTED Объект хранилища был признан недействительным в результате операции отменить изменения над ним в дереве транзакций.
STG_E_TOOMANYOPENFILES Поток не был открыт из-за слишком большого количества открытых файлов.

Комментарии

IStorage::OpenStream открывает существующий объект потока в этом объекте хранилища в режиме доступа, указанном в grfMode. Существуют ограничения на разрешения, которые могут быть предоставлены в grfMode. Например, разрешения на этот объект хранилища ограничивают разрешения на его потоки. Как правило, ограничения доступа к потокам должны быть более строгими, чем в родительских хранилищах. Потоки составных файлов должны открываться с помощью STGM_SHARE_EXCLUSIVE.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header objidl.h
Библиотека Uuid.lib
DLL Ole32.dll

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

IStorage — реализация составного файла

IStorage::CreateStream

IStream