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