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


Метод IStream::Seek (objidl.h)

Метод Seek изменяет указатель поиска на новое расположение. Новое расположение относится либо к началу потока, либо к концу потока, либо к текущему указателю поиска.

Синтаксис

HRESULT Seek(
  [in]  LARGE_INTEGER  dlibMove,
  [in]  DWORD          dwOrigin,
  [out] ULARGE_INTEGER *plibNewPosition
);

Параметры

[in] dlibMove

Смещение, добавляемое к расположению, указанному параметром dwOrigin . Если dwOriginSTREAM_SEEK_SET, это интерпретируется как неподписаемое значение, а не как подписанное значение.

[in] dwOrigin

Источник смещения, указанного в dlibMove. Источником может быть начало файла (STREAM_SEEK_SET), текущий указатель поиска (STREAM_SEEK_CUR) или конец файла (STREAM_SEEK_END). Дополнительные сведения о значениях см. в перечислении STREAM_SEEK .

[out] plibNewPosition

Указатель на расположение, в котором этот метод записывает значение нового указателя поиска с начала потока.

Для этого указателя можно задать значение NULL. В этом случае этот метод не предоставляет новый указатель поиска.

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

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

Код возврата Описание
S_OK Указатель поиска успешно отрегулирован.
E_PENDING Только асинхронное хранилище. Часть или все потоковые данные в настоящее время недоступны.
STG_E_INVALIDPOINTER Указывает, что plibNewPosition указывает на недопустимую память, так как plibNewPosition не считывается.
STG_E_INVALIDFUNCTION Параметр dwOrigin содержит недопустимое значение, или параметр dlibMove содержит неправильное значение смещения. Например, результатом указателя поиска является отрицательное значение смещения.
STG_E_REVERTED Объект был признан недействительным в результате операции отменить изменения над ним в дереве транзакций.

Комментарии

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

Этот метод также можно использовать для получения текущего значения указателя поиска путем вызова этого метода с параметром dwOrigin , заданным в STREAM_SEEK_CUR , и параметром dlibMove , равным 0, чтобы указатель поиска не изменялся. Текущий указатель поиска возвращается в параметре plibNewPosition .

Требования

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

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

ISequentialStream::Read

ISequentialStream::Write

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

STREAM_SEEK