WsReadEnvelopeStart 函式 (webservices.h)

讀取訊息的標頭,並準備讀取本文專案。 作業會從讀取器讀取下一個訊息的開頭,包括訊息的標頭。 此程式允許從通道以外的其他來源讀取訊息。 若要使用通道讀取訊息,請使用 WsReadMessageStart

注意 成功時,標頭會儲存在訊息中,而且可以使用 WsGetHeaderWsGetCustomHeader等函式隨機擷取。

 

語法

HRESULT WsReadEnvelopeStart(
  [in]           WS_MESSAGE               *message,
  [in]           WS_XML_READER            *reader,
  [in, optional] WS_MESSAGE_DONE_CALLBACK doneCallback,
  [in, optional] void                     *doneCallbackState,
  [in, optional] WS_ERROR                 *error
);

參數

[in] message

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

[in] reader

讀取器的指標,其中包含要讀取的訊息。 Message 物件會使用目前和後續呼叫中的讀取器。

注意 函式呼叫端必須讓讀取器保持有效,直到呼叫 WsResetMessageWsFreeMessage 為止。
WS_MESSAGE_DONE_CALLBACK參數可用來知道WS_XML_READER已不再使用。

 

[in, optional] doneCallback

識別回呼函式,以在訊息發行後起始目前作業的成功。

注意訊息是使用WsFreeMessageWsResetMessage發行

 
回呼可用來探索此訊息是否正在使用 WS_XML_READER 實例。 如果目前的作業失敗,則不會呼叫回呼。

[in, optional] doneCallbackState

可傳遞至 WS_MESSAGE_DONE_CALLBACK之使用者定義狀態的指標。 如果未使用回呼,此參數可能是 Null

[in, optional] error

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

傳回值

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

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

備註

訊息必須處於 WS_MESSAGE_STATE_EMPTY 狀態。 成功時,訊息狀態會設定為 WS_MESSAGE_STATE_READING

若要讀取訊息本文的元素,請使用 WsReadBody。 若要直接從 XML 讀取器讀取,請取得將 訊息屬性識別碼 設定為 WS_MESSAGE_PROPERTY_BODY_READER的讀取器。

規格需求

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