WinHttpQueryOption 関数 (winhttp.h)
WinHttpQueryOption 関数は、指定したハンドルのインターネット オプションに対してクエリを実行します。
構文
WINHTTPAPI BOOL WinHttpQueryOption(
[in] HINTERNET hInternet,
[in] DWORD dwOption,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferLength
);
パラメーター
[in] hInternet
情報のクエリを実行する HINTERNET ハンドル。 これは、クエリ対象のオプションに応じて、セッション ハンドルまたは要求ハンドルのいずれかであることに注意してください。特定のオプションのクエリに使用するのに適したハンドルを決定するには、「 オプション フラグ 」トピックを参照してください。
[in] dwOption
クエリを実行するインターネット オプションを含む符号なし long 整数値。 これは、 オプション フラグ の値のいずれかです。
[out] lpBuffer
オプション設定を受け取るバッファーへのポインター。 WinHttpQueryOption 関数によって返される文字列はグローバルに割り当てられるため、呼び出し元のアプリケーションは、文字列の使用が完了したときにグローバルに解放する必要があります。 このパラメーターを NULL に設定すると、この関数は FALSE を返します。 GetLastError を呼び出すと、ERROR_INSUFFICIENT_BUFFERが返され、lpdwBufferLength には、要求された情報を保持するために必要なバイト数が含まれます。
[in, out] lpdwBufferLength
lpBuffer の長さをバイト単位で格納する符号なし長整数変数へのポインター。 関数が戻ると、変数は lpBuffer に配置されたデータの長さを受け取ります。 GetLastError がERROR_INSUFFICIENT_BUFFERを返す場合、このパラメーターは要求された情報を保持するために必要なバイト数を受け取ります。
戻り値
成功した場合は TRUE 、それ以外の場合 は FALSE を 返します。 特定のエラー メッセージを取得するには、 GetLastError を呼び出します。 返されるエラー コードは次のとおりです。
エラー コード | 説明 |
---|---|
|
指定されたハンドルが正しい状態でないため、要求された操作を実行できません。 |
|
指定されたハンドルの種類が、この操作に対して正しくありません。 |
|
内部エラーが発生しました。 |
|
無効なオプション値が指定されました。 |
|
要求された操作を完了するのに十分なメモリが使用できませんでした。 (Windows エラー コード) |
解説
WinHTTP が非同期モードで使用されている場合 (つまり、WinHttpOpen でWINHTTP_FLAG_ASYNCが設定されている場合) でも、この関数は同期的に動作します。 戻り値は成功または失敗を示します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
指定したハンドル型に無効なオプション フラグが dwOption パラメーターに渡された場合、GetLastError はERROR_INVALID_PARAMETERを返します。
例
この例では、接続タイムアウト値の取得を示します。
DWORD data;
DWORD dwSize = sizeof(DWORD);
// Use WinHttpOpen to obtain an HINTERNET handle.
HINTERNET hSession = WinHttpOpen(L"A WinHTTP Example Program/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
if (hSession)
{
// Use WinHttpQueryOption to retrieve internet options.
if (WinHttpQueryOption( hSession,
WINHTTP_OPTION_CONNECT_TIMEOUT,
&data, &dwSize))
{
printf("Connection timeout: %u ms\n\n",data);
}
else
{
printf( "Error %u in WinHttpQueryOption.\n", GetLastError());
}
// When finished, release the HINTERNET handle.
WinHttpCloseHandle(hSession);
}
else
{
printf("Error %u in WinHttpOpen.\n", GetLastError());
}
要件
サポートされている最小のクライアント | Windows XP、Windows 2000 Professional SP3 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003、Windows 2000 Server SP3 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winhttp.h |
Library | Winhttp.lib |
[DLL] | Winhttp.dll |
再頒布可能パッケージ | Windows XP および Windows 2000 では、WinHTTP 5.0 およびインターネット エクスプローラー 5.01 以降がインストールされています。 |