WinHttpReadDataEx 関数 (winhttp.h)
WinHttpOpenRequest 関数によって開かれたハンドルからデータを読み取ります。
構文
WINHTTPAPI DWORD WinHttpReadDataEx(
HINTERNET hRequest,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead,
ULONGLONG ullFlags,
DWORD cbProperty,
PVOID pvProperty
);
パラメーター
hRequest
型: IN HINTERNET
WinHttpOpenRequest の以前の呼び出しから返された HINTERNET ハンドル。
WinHttpReceiveResponse または WinHttpQueryDataAvailable は、このハンドルに対して呼び出されている必要があり、 WinHttpReadDataEx が呼び出される前に完了している必要があります。 WinHttpReceiveResponse の完了後すぐに WinHttpReadDataEx を呼び出すとバッファー コピーの費用はかからなくなりますが、これを行うには、アプリケーションで読み取りに固定長バッファーを使用する必要があります。
lpBuffer
種類: _Out_writes_bytes_to_(dwNumberOfBytesToRead, *lpdwNumberOfBytesRead) __out_data_source(NETWORK) LPVOID
読み取られたデータを受け取るバッファーへのポインター。 WinHttpReadDataEx が完了するまで、このバッファーが有効なままであることを確認します。
dwNumberOfBytesToRead
型: IN DWORD
読み取るバイト数を含む符号なし long 整数値。
lpdwNumberOfBytesRead
種類: OUT LPDWORD
読み取られたバイト数を受け取る符号なし long 整数変数へのポインター。 WinHttpReadDataEx は 、作業またはエラー チェックを行う前に、この値を 0 に設定します。 WinHTTP を非同期的に使用する場合は、常にこのパラメーターを NULL に設定し、コールバック関数の情報を取得します。これを行わないと、メモリ エラーが発生する可能性があります。
ullFlags
型: IN ULONGLONG
WINHTTP_READ_DATA_EX_FLAG_FILL_BUFFER渡した場合、WinHttp は、指定されたデータ バッファーが入力されるか、応答が完了するまで、WinHttpReadDataEx の呼び出しを完了しません。 このフラグを渡すと、この API の動作は WinHttpReadData と同等になります。
cbProperty
型: IN DWORD
予約済み。 0 を渡します。
pvProperty
種類: _In_reads_bytes_opt_(cbProperty) PVOID
予約済み。 NULL を渡します。
戻り値
操作の結果を示す状態コード。 返されるエラー コードの中には、次のエラー コードがあります。
エラー コード | 説明 |
---|---|
|
サーバーとの接続がリセットまたは終了されたか、互換性のない SSL プロトコルが検出されました。 たとえば、WinHTTP 5.1 では、クライアントで明示的に有効にしない限り、SSL2 はサポートされません。 |
|
指定されたハンドルが正しい状態でないため、要求された操作を実行できません。 |
|
指定されたハンドルの種類がこの操作に対して正しくありません。 |
|
内部エラーが発生しました。 |
|
通常、操作が完了する前に要求が操作されていたハンドルが閉じられたため、操作は取り消されました。 |
|
受信応答が内部 WinHTTP サイズ制限を超えたときに返されます。 |
|
要求がタイムアウトしました。 |
|
要求された操作を完了するのに十分なメモリが使用できませんでした。 (Windows エラー コード) |
解説
既定では、 WinHttpReadDataEx は、指定したバッファーに任意の量のデータが書き込まれた後にを返します (関数は、指定したバッファーを常に完全に埋めるわけではありません)。
要件
サポートされている最小のクライアント | Windows 10 ビルド 20348 |
サポートされている最小のサーバー | Windows 10 ビルド 20348 |
対象プラットフォーム | Windows |
ヘッダー | winhttp.h |
Library | Winhttp.lib |
[DLL] | Winhttp.dll |