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


Метод ISequentialStream::Read (objidl.h)

Метод Read считывает указанное количество байтов из объекта потока в память, начиная с текущего указателя поиска.

Синтаксис

HRESULT Read(
  [out] void  *pv,
  [in]  ULONG cb,
  [out] ULONG *pcbRead
);

Параметры

[out] pv

Указатель на буфер, в который считываются данные потока.

[in] cb

Количество байтов данных, считываемых из объекта потока.

[out] pcbRead

Указатель на переменную ULONG , которая получает фактическое количество байтов, считанных из объекта потока.

Примечание Число прочитанных байтов может быть равно нулю.
 

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

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

Код возврата Описание
S_OK Все запрошенные данные успешно считаны из объекта потока; Число байтов, запрошенных в cb , совпадает с числом байтов, возвращаемых в pcbRead.
S_FALSE Значение, возвращаемое в pcbRead , меньше числа байтов, запрошенных в cb. Это означает, что достигнут конец потока. Число прочитанных байтов указывает, какая часть буфера pv была заполнена.
E_PENDING Только асинхронное хранилище. Часть или все считываемые данные в настоящее время недоступны.
STG_E_ACCESSDENIED Вызывающий объект не имеет разрешений, необходимых для чтения этого объекта потока.
STG_E_INVALIDPOINTER Одно из значений указателя является недопустимым.
STG_E_REVERTED Объект был признан недействительным в результате операции отменить изменения над ним в дереве транзакций.

Комментарии

Этот метод считывает байты из этого объекта потока в память. Объект потока должен быть открыт в режиме STGM_READ . Этот метод корректирует указатель поиска на фактическое количество прочитанных байтов.

Количество фактических байтов также возвращается в параметре pcbRead .

Примечания к вызывающим абонентам

Фактическое число прочитанных байтов может быть меньше запрошенного числа байтов при возникновении ошибки или достижении конца потока во время операции чтения. Количество возвращаемых байтов всегда должно сравниваться с числом запрошенных байтов. Если количество возвращаемых байтов меньше запрошенного числа байтов, обычно это означает, что метод Read пытался прочитать данные после конца потока.

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

Требования

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

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

ISequentialStream::Write

IStorage::OpenStream

IStream

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

STGMOVE