Método IWSDOutboundAttachment::Write (wsdattachment.h)
Envia dados de anexo para o host remoto usando um contêiner MIME.
Sintaxe
HRESULT Write(
[in] const BYTE *pBuffer,
[in] DWORD dwBytesToWrite,
[out] LPDWORD pdwNumberOfBytesWritten
);
Parâmetros
[in] pBuffer
Ponteiro para um buffer que contém os dados de saída. O programa de aplicativo é responsável por alocar e liberar esse buffer de dados.
[in] dwBytesToWrite
Número de bytes a serem enviados para o host remoto do pBuffer.
[out] pdwNumberOfBytesWritten
Ponteiro para um DWORD que contém o número de bytes de dados realmente enviados para o host remoto.
Retornar valor
Os valores retornados possíveis incluem, mas não se limitam a:
Código de retorno | Descrição |
---|---|
|
Método concluído com êxito. |
|
pdwNumberofBytesWritten é NULL. |
|
pBuffer é NULL. |
|
A interface de anexo de saída não foi inicializada. Chame WSDCreateOutboundAttachment para inicializar a interface. |
|
Os buffers internos não estavam disponíveis. Os dados não foram aceitos e enfileirados para transmissão. |
Comentários
O método Write permite que um programa de aplicativo envie dados arbitrários para um host remoto como um anexo de mensagem encapsulado por MIME. A primeira chamada para Gravação abre o fluxo de anexos de saída e inicia a transmissão dos cabeçalhos HTTP, dos dados do envelope e dos dados do aplicativo codificados em MIME. As chamadas subsequentes para Gravação enviarão blocos adicionais de dados de aplicativo codificados em MIME até que o aplicativo faça uma chamada para Fechar, que fecha o fluxo de anexos e conclui a transmissão dos dados e cabeçalhos do envelope da mensagem.
A operação De gravação pode ser bloqueada em várias condições. Na operação inicial, Write bloqueará até que os cabeçalhos HTTP e o conteúdo XML sejam transmitidos. Ao enviar vários anexos em uma única mensagem, a primeira chamada para Gravar em qualquer anexo pode ser bloqueada até que qualquer fluxo de anexo anterior tenha sido completamente transmitido. A gravação poderá ser bloqueada por até 30 segundos (por tempo limite de transmissão HTTP) se o host remoto não responder.
Se ocorrer um erro ao estabelecer uma conexão ou transmitir cabeçalhos, Write retornará o código de erro imediatamente. Se ocorrer um erro de transferência de dados, o erro poderá ser adiado para uma chamada futura de Gravação ou Fechamento.
O método Write pode retornar com êxito após uma tentativa de Gravação com falha que retornou STG_S_BLOCK. Um sucesso subsequente indica que os buffers internos foram liberados para uso após a tentativa de falha inicial. Quando STG_S_BLOCK é recebido por um aplicativo, o aplicativo pode reenviar os mesmos dados usando o método Write ou encerrar a transferência de dados usando o método Abort .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | wsdattachment.h (include Wsdapi.h) |
DLL | Wsdapi.dll |