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


Метод 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
Заголовок
Scardssp.h
Библиотека типов
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer определяется как E126F8FE-A7AF-11D0-B88A-00C04FD424B9