Метод IByteBuffer::Seek
[Метод Seek доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Интерфейс IStream предоставляет аналогичные функции.]
Метод Seek изменяет указатель на новое расположение относительно начала буфера, конца буфера или текущего указателя поиска.
Синтаксис
HRESULT Seek(
[in] LONG dlibMove,
[in] LONG dwOrigin,
[out] LONG *plibNewPosition
);
Параметры
-
dlibMove [in]
-
Смещение, добавляемое к расположению, указанному dwOrigin. Если параметр dwOrigin STREAM_SEEK_SET, он интерпретируется как неподписаемое значение, а не как подписанный.
-
dwOrigin [in]
-
Указывает источник смещения, указанного в dlibMove. Источником может быть одно из значений в следующей таблице.
Значение Значение - STREAM_SEEK_SET
Новый указатель поиска является смещением относительно начала потока. В этом случае параметр dlibMove является новой позицией поиска относительно начала потока. - STREAM_SEEK_CUR
Новый указатель поиска — это смещение относительно текущего расположения указателя поиска. В этом случае параметр dlibMove — это смещение со знаком из текущей позиции поиска. - STREAM_SEEK_END
Новый указатель поиска является смещением относительно конца потока. В этом случае параметр dlibMove является новой позицией поиска относительно конца потока. -
plibNewPosition [out]
-
Указатель на расположение, в которое этот метод записывает значение нового указателя поиска с начала потока. Для этого указателя можно задать значение NULL , чтобы указать, что это значение вас не интересует. В этом случае этот метод не предоставляет новый указатель поиска.
Возвращаемое значение
Возвращаемое значение — HRESULT. Значение S_OK указывает, что вызов выполнен успешно.
Комментарии
Метод Seek изменяет указатель поиска, чтобы последующие операции чтения и записи могли выполняться в другом расположении объекта потока. Поиск до начала потока является ошибкой. Однако поиск за пределы конца потока не является ошибкой. Поиск после конца потока полезен для последующих операций записи, так как в это время поток будет расширен до позиции поиска непосредственно перед выполнением операции записи.
Этот метод также можно использовать для получения текущего значения указателя поиска путем вызова этого метода с параметром dwOrigin , заданным STREAM_SEEK_CUR, а параметр dlibMove — равным нулю, чтобы указатель поиска не изменялся. Текущий указатель поиска возвращается в параметре plibNewPosition .
Примеры
В следующем примере показано размещение указателя поиска в новом расположении.
LONG lNewPos;
HRESULT hr;
// Change the seek pointer.
hr = pIByteBuff->Seek(5, STREAM_SEEK_SET, &lNewPos);
if (FAILED(hr))
printf("Failed IByteBuffer::Seek\n");
else
printf("New position is %x\n", lNewPos);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Окончание поддержки клиентов |
Windows XP |
Прекращение поддержки сервера |
Windows Server 2003 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
IID |
IID_IByteBuffer определяется как E126F8FE-A7AF-11D0-B88A-00C04FD424B9 |