Método IStream::Seek (objidl.h)

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

Sintaxis

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

Parámetros

[in] dlibMove

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

[in] dwOrigin

Origen del desplazamiento especificado en dlibMove. El origen puede ser el principio del archivo (STREAM_SEEK_SET), el puntero de búsqueda actual (STREAM_SEEK_CUR) o el final del archivo (STREAM_SEEK_END). Para obtener más información sobre los valores, vea la enumeración STREAM_SEEK .

[out] plibNewPosition

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. En este caso, este método no proporciona el nuevo puntero de búsqueda.

Valor devuelto

Este método puede devolver uno de estos valores.

Código devuelto Descripción
S_OK El puntero de búsqueda se ha ajustado correctamente.
E_PENDING Solo almacenamiento asincrónico: la parte o todos los datos del flujo no están disponibles actualmente.
STG_E_INVALIDPOINTER Indica que plibNewPosition apunta a memoria no válida, porque plibNewPosition no se lee.
STG_E_INVALIDFUNCTION El parámetro dwOrigin contiene un valor no válido o el parámetro dlibMove contiene un valor de desplazamiento incorrecto. Por ejemplo, el resultado del puntero de búsqueda es un valor de desplazamiento negativo.
STG_E_REVERTED El objeto ha sido invalidado por una operación de reversión encima de él en el árbol de transacciones.

Comentarios

IStream::Seek cambia el puntero de búsqueda para que las operaciones de lectura y escritura posteriores se puedan realizar en una ubicación diferente del 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 el intervalo de bytes de secuencia se extenderá a la nueva posición de búsqueda inmediatamente antes de que se complete la 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 0 para que el puntero de búsqueda no cambie. El puntero de búsqueda actual se devuelve en el parámetro plibNewPosition .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado objidl.h
Library Uuid.lib
Archivo DLL Ole32.dll

Consulte también

ISequentialStream::Read

ISequentialStream::Write

IStream: implementación de archivos compuestos

STREAM_SEEK