IWSDOutboundAttachment::Write 方法 (wsdattachment.h)

使用 MIME 容器将附件数据发送到远程主机。

语法

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

参数

[in] pBuffer

指向包含输出数据的缓冲区的指针。 应用程序负责分配和释放此数据缓冲区。

[in] dwBytesToWrite

要从 pBuffer 发送到远程主机的字节数。

[out] pdwNumberOfBytesWritten

指向包含实际发送到远程主机的数据字节数的 DWORD 的指针。

返回值

可能的返回值包括但不限于以下值:

返回代码 说明
S_OK
方法已成功完成。
E_POINTER
pdwNumberofBytesWrittenNULL
E_INVALIDARG
pBufferNULL
HRESULT_FROM_WIN32 (ERROR_INVALID_OPERATION)
尚未初始化出站附件接口。 调用 WSDCreateOutboundAttachment 以初始化接口。
STG_S_BLOCK
内部缓冲区不可用。 数据未被接受并排队等待传输。

注解

Write 方法允许应用程序将任意数据作为 MIME 封装的消息附件发送到远程主机。 对 Write 的第一次调用将打开出站附件流,并启动 HTTP 标头、信封数据和 MIME 编码的应用程序数据的传输。 对 Write 的后续调用将发送其他 MIME 编码的应用程序数据块,直到应用程序调用 Close,这会关闭附件流并完成消息信封数据和标头的传输。

在多种情况下 ,写入 操作可能会受阻。 在初始操作中, 写入 将阻塞,直到传输 HTTP 标头和 XML 内容。 在单个邮件中发送多个附件时,在任何附件上 对 Write 的第一次调用可能会受阻,直到完全传输任何以前的附件流。 如果远程主机不回复,则每次 HTTP 传输超时) ,写入可能会阻塞最多 30 秒 (。

如果在建立连接或传输标头时发生错误, Write 将立即返回错误代码。 如果发生数据传输错误,该错误可能会延迟到将来调用 WriteClose

在返回STG_S_BLOCK失败的 Write 尝试后,Write 方法可能会成功返回。 后续的成功表示内部缓冲区在初始尝试失败后已释放以供使用。 当应用程序收到 STG_S_BLOCK 时,应用程序可以使用 Write 方法重新发送相同的数据,或使用 Abort 方法终止数据传输。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 wsdattachment.h (包括 Wsdapi.h)
DLL Wsdapi.dll

另请参阅

IWSDInboundAttachment

IWSDOutboundAttachment

IWSDOutboundAttachment::Abort

IWSDOutboundAttachment::Close