Compartir a través de


Método IWSDOutboundAttachment::Write (wsdattachment.h)

Envía datos adjuntos al host remoto mediante un contenedor MIME.

Sintaxis

HRESULT Write(
  [in]  const BYTE *pBuffer,
  [in]  DWORD      dwBytesToWrite,
  [out] LPDWORD    pdwNumberOfBytesWritten
);

Parámetros

[in] pBuffer

Puntero a un búfer que contiene los datos de salida. El programa de aplicación es responsable de asignar y liberar este búfer de datos.

[in] dwBytesToWrite

Número de bytes que se van a enviar al host remoto desde pBuffer.

[out] pdwNumberOfBytesWritten

Puntero a un DWORD que contiene el número de bytes de datos que se envían realmente al host remoto.

Valor devuelto

Entre los valores devueltos posibles se incluyen, entre otros, los siguientes:

Código devuelto Descripción
S_OK
El método se completó correctamente.
E_POINTER
pdwNumberofBytesWritten es NULL.
E_INVALIDARG
pBuffer es NULL.
HRESULT_FROM_WIN32(ERROR_INVALID_OPERATION)
La interfaz de datos adjuntos salientes no se ha inicializado. Llame a WSDCreateOutboundAttachment para inicializar la interfaz.
STG_S_BLOCK
Los búferes internos no estaban disponibles. Los datos no se aceptaron y se ponen en cola para la transmisión.

Comentarios

El método Write permite a un programa de aplicación enviar datos arbitrarios a un host remoto como datos adjuntos de mensajes encapsulados por MIME. La primera llamada a Write abre el flujo de datos adjuntos salientes e inicia la transmisión de los encabezados HTTP, los datos de sobre y los datos de la aplicación codificados por MIME. Las llamadas posteriores a Write enviarán bloques adicionales de datos de aplicación codificados con MIME hasta que la aplicación realice una llamada a Close, que cierra la secuencia de datos adjuntos y finaliza la transmisión de los datos y encabezados del sobre del mensaje.

La operación de escritura puede bloquearse en varias condiciones. En la operación inicial, Write se bloqueará hasta que se hayan transmitido los encabezados HTTP y el contenido XML. Al enviar varios datos adjuntos en un solo mensaje, la primera llamada a Escribir en cualquier dato adjunto puede bloquearse hasta que se hayan transmitido completamente las secuencias de datos adjuntos anteriores. La escritura puede bloquear hasta 30 segundos (por tiempo de espera de transmisión HTTP) si el host remoto no responde.

Si se produce un error al establecer una conexión o transmitir encabezados, Write devolverá el código de error inmediatamente. Si se produce un error de transferencia de datos, el error puede retrasarse a una llamada futura de Write o Close.

El método Write puede devolverse correctamente después de un intento de escritura erróneo que devolvió STG_S_BLOCK. Una operación correcta posterior indica que los búferes internos se liberaron para su uso después del intento inicial de error. Cuando una aplicación recibe STG_S_BLOCK , la aplicación puede reenviar los mismos datos mediante el método Write o finalizar la transferencia de datos mediante el método Abort .

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wsdattachment.h (incluya Wsdapi.h)
Archivo DLL Wsdapi.dll

Consulte también

IWSDInboundAttachment

IWSDOutboundAttachment

IWSDOutboundAttachment::Abort

IWSDOutboundAttachment::Close