WsReadBody 関数 (webservices.h)

これは、メッセージの XML Reader から値を逆シリアル化するヘルパー関数です。 WS_MESSAGE_STATE、WS_MESSAGE_STATE_READINGに設定する必要があります。 この関数では、状態遷移は発生しません。

構文

HRESULT WsReadBody(
  [in]           WS_MESSAGE                   *message,
  [in]           const WS_ELEMENT_DESCRIPTION *bodyDescription,
  [in]           WS_READ_OPTION               readOption,
  [in, optional] WS_HEAP                      *heap,
                 void                         *value,
  [in]           ULONG                        valueSize,
  [in, optional] WS_ERROR                     *error
);

パラメーター

[in] message

本文の読み取り元となる Message オブジェクトへのポインター。 ポインターは、有効な WS_MESSAGE オブジェクトを参照する必要があります。

[in] bodyDescription

要素への値のマッピングを記述するメタデータをカプセル化する オブジェクトへのポインター。

[in] readOption

値が必要かどうかを判断し、値を割り当てる方法を指定します。 詳細については、「 WS_READ_OPTION 」を参照してください。

[in, optional] heap

要素を読み取る Heap オブジェクトへのポインター。 ポインターは、有効な WS_HEAP オブジェクトを参照する必要があります。

value

このパラメーターによって参照されるデータの解釈は 、WS_READ_OPTIONによって異なります。

[in] valueSize

このパラメーターの値の解釈は 、WS_READ_OPTIONによって異なります。

[in, optional] error

関数 が失敗 した場合にエラーに関する追加情報を格納する必要があるWS_ERROR オブジェクトへのポインター。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
WS_E_INVALID_FORMAT
入力データの形式が正しくないか、予期した値が指定されていませんでした。
E_OUTOFMEMORY
メモリ不足。
E_INVALIDARG
1 つ以上の引数が無効です。
その他のエラー
この関数は、上記以外のエラーを返す場合があります。

注釈

この関数は、提供されたWS_ELEMENT_DESCRIPTIONの内容に基づいて、次のシナリオ サポートします。

  • 1 つの要素を読み取る。 この場合、 WS_ELEMENT_DESCRIPTION の elementLocalName フィールドと elementNs フィールドは読み取る要素のローカル名と名前空間に設定する必要があり、型と型の説明は逆シリアル化される値の型を表します。 WS_FAULT_TYPEまたはWS_ENDPOINT_ADDRESS_TYPEを使用する場合は、ローカル名、名前空間、またはタイプの説明を指定する必要はありません (既定では、メッセージのエンベロープ/アドレス指定バージョンに基づいて適切に設定されます)。
  • 複数の要素を 1 つの値として読み取ります。 この場合、 WS_ELEMENT_DESCRIPTION の elementLocalName フィールドと elementNs フィールドを NULL に設定し、 WS_STRUCT_TYPEWS_STRUCT_DESCRIPTION を指定する必要があります。 この場合、逆シリアル化される構造体値の各フィールドは、本文内で読み取る要素に対応する必要があります。
  • 複数の要素を複数の値として読み取る。 関数を複数回呼び出すだけで、複数の個別の値を読み取ることができます。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー webservices.h
Library WebServices.lib
[DLL] WebServices.dll