Compartilhar via


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
S_OK
Método concluído com êxito.
E_POINTER
pdwNumberofBytesWritten é NULL.
E_INVALIDARG
pBuffer é NULL.
HRESULT_FROM_WIN32(ERROR_INVALID_OPERATION)
A interface de anexo de saída não foi inicializada. Chame WSDCreateOutboundAttachment para inicializar a interface.
STG_S_BLOCK
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

Confira também

IWSDInboundAttachment

IWSDOutboundAttachment

IWSDOutboundAttachment::Abort

IWSDOutboundAttachment::Close