Compartilhar via


Método IByteBuffer::Seek

[O método Seek está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele não está disponível para uso no Windows Server 2003 com Service Pack 1 (SP1) e posterior, Windows Vista, Windows Server 2008 e versões subsequentes do sistema operacional. A interface IStream fornece funcionalidade semelhante.]

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

Sintaxe

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

Parâmetros

dlibMove [in]

Deslocamento a ser adicionado ao local indicado por dwOrigin. Se dwOrigin for STREAM_SEEK_SET, isso será interpretado como um valor sem sinal em vez de assinado.

dwOrigin [in]

Especifica a origem do deslocamento especificado em dlibMove. A origem pode ser um dos valores na tabela a seguir.

Valor Significado
STREAM_SEEK_SET
O novo ponteiro de busca é um deslocamento relativo ao início do fluxo. Nesse caso, o parâmetro dlibMove é a nova posição de busca em relação ao início do fluxo.
STREAM_SEEK_CUR
O novo ponteiro de busca é um deslocamento em relação ao local do ponteiro de busca atual. Nesse caso, o parâmetro dlibMove é o deslocamento assinado da posição de busca atual.
STREAM_SEEK_END
O novo ponteiro de busca é um deslocamento relativo ao final do fluxo. Nesse caso, o parâmetro dlibMove é a nova posição de busca em relação ao final do fluxo.

plibNewPosition [out]

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 para indicar que não está interessado nesse valor. Nesse caso, esse método não fornece o novo ponteiro de busca.

Valor retornado

O valor retornado é um HRESULT. Um valor de S_OK indica que a chamada foi bem-sucedida.

Comentários

O método Seek altera o ponteiro seek para que as operações subsequentes de leitura e gravação possam ocorrer em um local diferente no objeto de fluxo. É um erro procurar 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 fluxo será estendido para a posição de busca imediatamente antes que a operação de 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 zero para que o ponteiro de busca não seja alterado. O ponteiro de busca atual é retornado no parâmetro plibNewPosition .

Exemplos

O exemplo a seguir mostra o posicionamento do ponteiro de busca para um novo local.

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 Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Fim do suporte ao cliente
Windows XP
Fim do suporte ao servidor
Windows Server 2003
Cabeçalho
Scardssp.h
Biblioteca de tipos
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer é definido como E126F8FE-A7AF-11D0-B88A-00C04FD424B9