WsFillBody 函式 (webservices.h)

確保訊息中有足夠數量的位元組可供讀取。 應用程式必須指定足以包含要讀取之下一個 XML 建構的位元元組數目。

注意 使用 WsReadBody 或 XML Readerof 訊息來讀取訊息本文之前,會呼叫此函式。
 

此函式是呼叫用來寫入訊息之 XML 讀取 器的 WsFillReader 的快捷方式。 直接呼叫 WsFillReader 相當於呼叫此函式。

語法

HRESULT WsFillBody(
  [in]           WS_MESSAGE             *message,
  [in]           ULONG                  minSize,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

參數

[in] message

用於「填滿」 之WS_MESSAGE 結構的指標。

[in] minSize

訊息應該已緩衝的最小位元節數目。 如果緩衝的目前位元組計數等於或大於 minSize 函式的值,則不會執行任何動作。

注意minSize 的值代表預期的 XML 編碼格式大小。 這可能會因編碼方式而有所不同,以及實際 XML 的結構方式。 此函式的一般用法是選取編碼或 XML 結構的預期上限位元組計數,以確保讀取預期的數據。
 

[in, optional] asyncContext

具有異步叫用函式相關信息 之WS_ASYNC_CONTEXT 數據結構的指標。 NULL 值表示同步作業的要求。

[in, optional] error

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

傳回值

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

傳回碼 描述
S_OK
已成功收到訊息的開始。
WS_S_ASYNC
異步操作仍然擱置中。
WS_E_INVALID_FORMAT
輸入數據的格式不正確,或沒有預期的值。
E_INVALIDARG
一或多個引數無效。
E_OUTOFMEMORY
記憶體不足。
其他錯誤
此函式可能會傳回上述未列出的其他錯誤。

備註

撰寫訊息本文時,通常會使用此函式,並將數據流模式設定為 WS_STREAMED_OUTPUT_TRANSFER_MODE,或在串流模式中使用 XML 讀取器時。

當撰寫訊息本文且 未設定WS_STREAMED_OUTPUT_TRANSFER_MODE ,或 XML 讀取器的模式設定為 WS_XML_READER_BUFFER_INPUT 時,此函式是「無作業」。

規格需求

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