WsWriteEnvelopeStart 函式 (webservices.h)

寫入訊息的開頭,包括訊息的目前標頭集,並準備寫入本文專案。

此函式是專為將訊息寫入通道以外的目的地所設計。 若要將訊息寫入通道,請使用 WsWriteMessageStart

語法

HRESULT WsWriteEnvelopeStart(
  [in]           WS_MESSAGE               *message,
  [in]           WS_XML_WRITER            *writer,
  [in, optional] WS_MESSAGE_DONE_CALLBACK doneCallback,
  [in, optional] void                     *doneCallbackState,
  [in, optional] WS_ERROR                 *error
);

參數

[in] message

要寫入之 Message 物件的指標。 指標必須參考有效的 WS_MESSAGE 物件。

[in] writer

要寫入 Message 的 XML 寫入器 物件的指標。 Message 物件會在後續呼叫中使用寫入器來寫入訊息。 呼叫端必須讓寫入器保持有效,直到呼叫 WsResetMessageWsFreeMessage 為止。

WS_MESSAGE_DONE_CALLBACK參數可用來判斷WS_XML_WRITER不再使用中。

[in, optional] doneCallback

釋放或重設訊息時叫用的回呼函式。 這個回呼可用來指出此訊息不再使用 WS_XML_WRITER 物件。 如果此函式失敗,則不會呼叫回呼。 如果函式成功,則只會叫用回呼一次。

[in, optional] doneCallbackState

將傳遞給指定回呼之使用者定義狀態的 void 指標。 此參數可以是 NULL

[in, optional] error

WS_ERROR 物件的指標,如果函式失敗,應該儲存錯誤的其他資訊。

傳回值

此函式可以傳回下列其中一個值。

傳回碼 Description
WS_E_INVALID_FORMAT
輸入數據不是預期的格式,或沒有預期的值。
E_OUTOFMEMORY
記憶體不足。
E_INVALIDARG
一或多個引數無效。
其他錯誤
此函式可能會傳回上面未列出的其他錯誤。

備註

訊息的開頭,包括存在於訊息中的目前標頭集,都會寫入寫入器。

訊息狀態必須設定為 WS_MESSAGE_STATE_INITIALIZED。 成功時,訊息狀態會轉換為 WS_MESSAGE_STATE_WRITING
失敗狀態轉換不會發生。

若要撰寫訊息本文的專案,請使用 WsWriteBody。 若要直接寫入訊息的寫入器,請取得 讀取器,並將WS_MESSAGE_PROPERTY_ID 設定為 WS_MESSAGE_PROPERTY_BODY_WRITER 屬性。

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll