InternetQueryOption インターネットのオプション情報の取得

Cの宣言:

BOOL InternetQueryOption(
	IN HINTERNET hInternet OPTIONAL,
	IN DWORD OptionType,
	OUT LPVOID Buf OPTIONAL,
	IN OUT LPDOWRD BufSize);

説明:

指定されたハンドルに対するインターネットのオプション情報を取得する。

引数の意味は以下の通り。
hInternet 情報の取得元のインターネットのハンドル。
OptionType どの情報を取得するかを識別するフラグ。後述の表を参照。
Buf 取得結果の情報を格納するバッファ。
BufSize Bufのサイズ。関数の実行後、設定されたデータのサイズまたは必要なサイズが返される。

OptionTypeに指定可能な値は以下のいずれかのフラグである。
INTERNET_OPTION_CALLBACK hInternetに関連付けられているコールバック関数へのポインタが返される。
INTERNET_OPTION_CONNECT_TIMEOUT 接続要求のタイムアウト時間(ミリ秒)が返される。
INTERNET_OPTION_CONNECT_RETRIES 接続の最大リトライ回数。
INTERNET_OPTION_CONNECT_BACKOFF リトライまでに一定時間待機する際の待機時間。現バージョンでは未実装。
INTERNET_OPTION_CONTROL_SEND_TIMEOUT 非データの送信要求のタイムアウト時間(ミリ秒)。現バージョンではFTPのみ有効。
INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT 非データの受信要求のタイムアウト時間(ミリ秒)。現バージョンではFTPのみ有効。
INTERNET_OPTION_DATA_SEND_TIMEOUT データの送信要求のタイムアウト時間(ミリ秒)。
INTERNET_OPTION_DATA_RECEIVE_TIMEOUT データの受信要求のタイムアウト時間(ミリ秒)。
INTERNET_OPTION_HANDLE_TYPE ハンドルのタイプ。
INTERNET_OPTION_CONTEXT_VALUE hInternetに関連付けられているContextの値。
INTERNET_OPTION_READ_BUFFER_SIZE 読み込み用バッファサイズ。
INTERNET_OPTION_WRITE_BUFFER_SIZE 書き込み用バッファサイズ。
INTERNET_OPTION_ASYNC_PRIORITY hInternetによる非同期ダウンロードにおける優先度。
INTERNET_OPTION_PARENT_HANDLE 親ハンドル。
INTERNET_OPTION_KEEP_CONNECTION 永続的接続を使用するかどうかを表すフラグ。
INTERNET_OPTION_USERNAME ユーザ名。
INTERNET_OPTION_PASSWORD パスワード。
INTERNET_OPTION_REQUEST_FLAGS 現在のダウンロードに関する状態フラグ。
INTERNET_OPTION_EXTENDED_ERROR WinSockのエラーコード。
INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT SSL/PCT用の証明書を表すINTERNET_CERTIFICATE_INFO構造体のデータ。
INTERNET_OPTION_SECURITY_CERTIFICATE SSL/PCT用の証明書を表す文字列。
INTERNET_OPTION_CACHE_STREAM_HANDLE 暗号用鍵のサイズ。
INTERNET_OPTION_SECURITY_FALGS セキュリティに関するビットマスク値。
INTERNET_OPTION_DATAFILE_NAME ダウンロード時のファイル名。
INTERNET_OPTION_URL ダウンロード時のリソースのURL名。
INTERNET_OPTION_REFRESH レジストリから情報を再読み込み可能かどうか。
INTERNET_OPTION_PROXY プロクシ情報を表すINTERNET_PROXY_INFO構造体のデータ。
INTERNET_OPTION_VERSION WININETのバージョンを表すINTERNET_VERSION_INFO構造体のデータ。
INTERNET_OPTION_USER_AGENT エージェント名。

戻り値は、関数の実行に成功したか否かを表す真偽値である。

Cのサンプル:

デフォルトのデータの送受信のタイムアウト時間を表示する。
void DispTimeout()
{
	DWORD Timeout;
	DWORD BufSize;

	BufSize = sizeof(DWORD);
	InternetQueryOption(NULL, INTERNET_OPTION_CONNECT_TIMEOUT, &Timeout, &BufSize);
	printf("接続のタイムアウト: %d ms\n", Timeout);

	BufSize = sizeof(DWORD);
	InternetQueryOption(NULL, INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT, &Timeout, &BufSize);
	printf("非データ受け取りのタイムアウト: %d ms\n", Timeout);

	BufSize = sizeof(DWORD);
	InternetQueryOption(NULL, INTERNET_OPTION_CONTROL_SEND_TIMEOUT, &Timeout, &BufSize);
	printf("非データ送信のタイムアウト: %d ms\n", Timeout);

	BufSize = sizeof(DWORD);
	InternetQueryOption(NULL, INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, &Timeout, &BufSize);
	printf("データ受け取りのタイムアウト: %d ms\n", Timeout);

	BufSize = sizeof(DWORD);
	InternetQueryOption(NULL, INTERNET_OPTION_DATA_SEND_TIMEOUT, &Timeout, &BufSize);
	printf("データ送信のタイムアウト: %d ms\n", Timeout);

}

(original text:1999/04/20 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。