Método IByteBuffer::Read
[O método Read 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 Read lê um número especificado de bytes do objeto buffer na memória, começando no ponteiro de busca atual.
Sintaxe
HRESULT Read(
[out] BYTE *pByte,
[in] LONG cb,
[out] LONG *pcbRead
);
Parâmetros
-
pByte [out]
-
Aponta para o buffer no qual os dados de fluxo são lidos. Se ocorrer um erro, esse valor será NULL.
-
cb [in]
-
Número de bytes de dados para tentar ler do objeto de fluxo.
-
pcbRead [out]
-
Endereço de uma variável LONG que recebe o número real de bytes lidos do objeto de 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 número real de bytes lidos.
Valor retornado
O valor retornado é um HRESULT. Um valor de S_OK indica que a chamada foi bem-sucedida.
Comentários
Esse método lê bytes desse objeto de fluxo na memória. O objeto de fluxo deve ser aberto no modo STGM_READ. Esse método ajusta o ponteiro de busca pelo número real de bytes lidos.
O número de bytes realmente lidos também é retornado no parâmetro pcbRead .
Notas aos Chamadores
O número real de bytes lidos pode ser menor do que o número de bytes solicitados se ocorrer um erro ou se o final do fluxo for atingido durante a operação de leitura.
Algumas implementações poderão retornar um erro se o final do fluxo for atingido durante a leitura. Você deve estar preparado para lidar com o retorno de erro ou S_OK valores retornados no final das leituras de fluxo.
Exemplos
O exemplo a seguir mostra a leitura de bytes do buffer.
BYTE byAtr[32];
long lBytesRead, i;
HRESULT hr;
// pAtr is a pointer to a previously instantiated IByteBuffer.
// It was used in an earlier call by ISCard::get_Atr.
// Use IByteBuffer::Read to access the retrieved ATR bytes.
hr = pAtr->Read(byAtr, 32, &lBytesRead);
// Use the ATR value. (This example merely displays the bytes.)
for ( i = 0; i < lBytesRead; i++)
printf("%c", *(byAtr + i));
printf("\n");
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 |