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

O método Seek altera o ponteiro seek para um novo local. O novo local é relativo ao início do fluxo, ao final do fluxo ou ao ponteiro de busca atual.

Sintaxe

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

Parâmetros

[in] dlibMove

O deslocamento a ser adicionado ao local indicado pelo parâmetro dwOrigin . Se dwOrigin for STREAM_SEEK_SET, isso será interpretado como um valor não assinado em vez de um valor assinado.

[in] dwOrigin

A origem do deslocamento especificado em dlibMove. A origem pode ser o início do arquivo (STREAM_SEEK_SET), o ponteiro de busca atual (STREAM_SEEK_CUR) ou o final do arquivo (STREAM_SEEK_END). Para obter mais informações sobre valores, consulte a enumeração STREAM_SEEK .

[out] plibNewPosition

Um ponteiro para o local em que esse método grava o valor do novo ponteiro de busca desde o início do fluxo.

Você pode definir esse ponteiro como NULL. Nesse caso, esse método não fornece o novo ponteiro de busca.

Retornar valor

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK O ponteiro de busca foi ajustado com êxito.
E_PENDING Somente armazenamento assíncrono: parte ou todos os dados de fluxo não estão disponíveis no momento.
STG_E_INVALIDPOINTER Indica que plibNewPosition aponta para memória inválida, porque plibNewPosition não é lido.
STG_E_INVALIDFUNCTION O parâmetro dwOrigin contém um valor inválido ou o parâmetro dlibMove contém um valor de deslocamento inválido. Por exemplo, o resultado do ponteiro seek é um valor de deslocamento negativo.
STG_E_REVERTED O objeto foi invalidado por uma operação de reverter acima dele na árvore de transações.

Comentários

IStream::Seek altera o ponteiro seek para que as operações de leitura e gravação subsequentes possam ser executadas em um local diferente no objeto de fluxo. É um erro buscar antes do início do fluxo. No entanto, não é um erro buscar além do final do fluxo. Buscar além do final do fluxo é útil para operações de gravação subsequentes, pois o intervalo de bytes de fluxo será estendido para a nova posição de busca imediatamente antes que a gravação seja concluída.

Você também pode usar esse método para obter o valor atual do ponteiro seek chamando esse método com o parâmetro dwOrigin definido como STREAM_SEEK_CUR e o parâmetro dlibMove definido como 0 para que o ponteiro seek não seja alterado. O ponteiro de busca atual é retornado no parâmetro plibNewPosition .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho objidl.h
Biblioteca Uuid.lib
DLL Ole32.dll

Confira também

ISequentialStream::Read

ISequentialStream::Write

IStream – Implementação de arquivo composto

STREAM_SEEK