Método IByteBuffer::Write
[O método Write 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 Write grava um número especificado de bytes no objeto de fluxo começando no ponteiro de busca atual.
Sintaxe
HRESULT Write(
[in] BYTE *pByte,
[in] LONG cb,
[out] LONG *pcbWritten
);
Parâmetros
-
pByte [in]
-
Endereço do buffer que contém os dados que devem ser gravados no fluxo. Um ponteiro válido deve ser fornecido para esse parâmetro mesmo quando cb é zero.
-
cb [in]
-
Número de bytes de dados para tentar gravar no fluxo. Esse parâmetro pode ser zero.
-
pcbWritten [out]
-
Endereço de uma variável LONG em que esse método grava o número real de bytes gravados no objeto de fluxo. O chamador pode definir esse ponteiro como NULL, nesse caso, esse método não fornece o número real de bytes gravados.
Valor retornado
O valor retornado é um HRESULT. Um valor de S_OK indica que a chamada foi bem-sucedida.
Comentários
O método IByteBuffer::Write grava os dados especificados em um objeto de fluxo. O ponteiro seek é ajustado para o número de bytes realmente gravados. O número de bytes realmente gravados é retornado no parâmetro pcbWritten . Se a contagem de bytes for zero bytes, a operação de gravação não terá efeito.
Se o ponteiro seek estiver atualmente além do final do fluxo e a contagem de bytes for diferente de zero, esse método aumentará o tamanho do fluxo para o ponteiro de busca e gravará os bytes especificados começando no ponteiro seek. Os bytes de preenchimento gravados no fluxo não são inicializados para nenhum valor específico. Isso é o mesmo que o comportamento de fim do arquivo no sistema de arquivos FAT do MS-DOS.
Com uma contagem de bytes zero e um ponteiro de busca após o final do fluxo, esse método não cria os bytes de preenchimento para aumentar o fluxo para o ponteiro de busca. Nesse caso, você deve chamar o método IByteBuffer::SetSize para aumentar o tamanho do fluxo e gravar os bytes de preenchimento.
O parâmetro pcbWritten pode ter um valor mesmo se ocorrer um erro.
Na implementação fornecida por COM, os objetos de fluxo não são esparsos. Todos os bytes de preenchimento são eventualmente alocados no disco e atribuídos ao fluxo.
Exemplos
O exemplo a seguir mostra a gravação de bytes no objeto de fluxo.
LONG lWrite;
HRESULT hr;
// Write to the buffer.
// byData is an array of 64 bytes.
hr = pIByteBuff->Write(byData,
64,
&lWrite);
if (FAILED(hr))
printf("Failed IByteBuffer::Write\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 |