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 オブジェクトは、現在およびそれ以降の呼び出しで Reader を使用します。

メモ 関数の呼び出し元は、 WsResetMessage または WsFreeMessage が呼び出されるまで、Reader を有効にしておく必要があります。
WS_MESSAGE_DONE_CALLBACK パラメーターは、WS_XML_READERが使用されなくなったことを知る方法で使用できます。

 

[in, optional] doneCallback

メッセージが解放されると、現在の操作の成功時に開始するコールバック関数を識別します。

メモメッセージは WsFreeMessage または WsResetMessage を使用して解放されます

 
コールバックを使用して、 WS_XML_READER インスタンスがこのメッセージで使用されているかどうかを検出できます。 現在の操作が失敗した場合、コールバックは呼び出されません。

[in, optional] doneCallbackState

WS_MESSAGE_DONE_CALLBACKに渡すことができるユーザー定義状態へのポインター。 コールバックが使用されていない場合、このパラメーターは NULL になる 可能性があります。

[in, optional] error

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

戻り値

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

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

解説

メッセージは WS_MESSAGE_STATE_EMPTY 状態である必要があります。 成功すると、メッセージの状態は WS_MESSAGE_STATE_READING に設定されます。

メッセージ本文の要素を読み取る場合は、 WsReadBody を使用します。 XML リーダーから直接読み取るには、 メッセージ プロパティ ID がWS_MESSAGE_PROPERTY_BODY_READER に設定された Reader を取得します。

要件

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