共用方式為


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 內容傳輸為止。 在單一訊息中傳送多個附件時,在任何 附件上寫入 的第一次呼叫可能會封鎖,直到任何先前的附件數據流完全傳輸為止。 如果 遠端主機未回復,則每個 HTTP 傳輸逾時最多可以封鎖 30 秒) (。

如果在建立連線或傳輸標頭時發生錯誤, Write 會立即傳回錯誤碼。 如果發生資料傳輸錯誤,錯誤可能會延遲至寫入或關閉的未來呼叫。

Write 方法可能會在傳回STG_S_BLOCK失敗的 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