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 |