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 |
|
Biblioteca de tipos |
|
DLL |
|
IID |
IID_IByteBuffer é definido como E126F8FE-A7AF-11D0-B88A-00C04FD424B9 |