Compartir a través de


Método IByteBuffer::Seek

[El método Seek está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. No está disponible para su uso en Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores, Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo. La interfaz IStream proporciona una funcionalidad similar.]

El método Seek cambia el puntero de búsqueda a una nueva ubicación relativa al principio del búfer, al final del búfer o al puntero de búsqueda actual.

Sintaxis

HRESULT Seek(
  [in]  LONG dlibMove,
  [in]  LONG dwOrigin,
  [out] LONG *plibNewPosition
);

Parámetros

dlibMove [in]

Desplazamiento que se va a agregar a la ubicación indicada por dwOrigin. Si dwOrigin es STREAM_SEEK_SET, se interpreta como un valor sin signo en lugar de con signo.

dwOrigin [in]

Especifica el origen del desplazamiento especificado en dlibMove. El origen puede ser uno de los valores de la tabla siguiente.

Valor Significado
STREAM_SEEK_SET
El nuevo puntero de búsqueda es un desplazamiento relativo al principio de la secuencia. En este caso, el parámetro dlibMove es la nueva posición de búsqueda relativa al principio de la secuencia.
STREAM_SEEK_CUR
El nuevo puntero de búsqueda es un desplazamiento relativo a la ubicación actual del puntero de búsqueda. En este caso, el parámetro dlibMove es el desplazamiento firmado de la posición de búsqueda actual.
STREAM_SEEK_END
El nuevo puntero de búsqueda es un desplazamiento relativo al final de la secuencia. En este caso, el parámetro dlibMove es la nueva posición de búsqueda relativa al final de la secuencia.

plibNewPosition [out]

Puntero a la ubicación donde este método escribe el valor del nuevo puntero de búsqueda desde el principio de la secuencia. Puede establecer este puntero en NULL para indicar que no está interesado en este valor. En este caso, este método no proporciona el nuevo puntero de búsqueda.

Valor devuelto

El valor devuelto es hrESULT. Un valor de S_OK indica que la llamada se realizó correctamente.

Comentarios

El método Seek cambia el puntero de búsqueda para que las operaciones posteriores de lectura y escritura se puedan realizar en una ubicación diferente en el objeto de secuencia. Es un error buscar antes del principio de la secuencia. Sin embargo, no es un error buscar más allá del final de la secuencia. Buscar más allá del final de la secuencia es útil para las operaciones de escritura posteriores, ya que la secuencia se extenderá a la posición de búsqueda inmediatamente antes de que se realice la operación de escritura.

También puede usar este método para obtener el valor actual del puntero de búsqueda llamando a este método con el parámetro dwOrigin establecido en STREAM_SEEK_CUR y el parámetro dlibMove establecido en cero para que el puntero de búsqueda no cambie. El puntero de búsqueda actual se devuelve en el parámetro plibNewPosition .

Ejemplos

En el ejemplo siguiente se muestra cómo colocar el puntero de búsqueda en una nueva ubicación.

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);

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Fin de compatibilidad de cliente
Windows XP
Fin de compatibilidad de servidor
Windows Server 2003
Encabezado
Scardssp.h
Biblioteca de tipos
Scardssp.tlb
Archivo DLL
Scardssp.dll
IID
IID_IByteBuffer se define como E126F8FE-A7AF-11D0-B88A-00C04FD424B9