次の方法で共有


WsPullBytes 関数 (webservices.h)

要素内に書き込まれるバイトを取得するために呼び出されるコールバックを設定します。
一部のエンコードでは、データのコピーを削除することで、この処理の効率を高めることができます。

構文

HRESULT WsPullBytes(
  [in]           WS_XML_WRITER          *writer,
  [in]           WS_PULL_BYTES_CALLBACK callback,
  [in, optional] void                   *callbackState,
  [in, optional] WS_ERROR               *error
);

パラメーター

[in] writer

バイトが書き込まれるライター。

[in] callback

バイナリ データを書き込むときに呼び出すコールバック。

[in, optional] callbackState

コールバックに渡されるユーザー定義の状態。

[in, optional] error

関数が失敗した場合に追加のエラー情報を格納する場所を指定します。

戻り値

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

リターン コード 説明
E_INVALIDARG
1 つ以上の引数が無効です。
WS_E_INVALID_OPERATION
オブジェクトの現在の状態のため、操作は許可されません。
WS_E_QUOTA_EXCEEDED
クォータを超えました。

解説

WsWriteBytesWsPushBytes では、データのバッファーをライターに提供する必要があります。 一部の使用パターンでは、データの追加コピーが必要になる場合があります。 このようなシナリオでは、 WsPullBytes は、データを格納する必要があるバッファーを提供するようにライターに要求する方法を提供します。

エンコードでこの動作を利用できない場合、 WsPullBytes はコールバックを直ちに呼び出し、結果のデータに 対して WsWriteBytes が呼び出されたかのように動作します。

要件

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