InternetOpen インターネットのハンドルの作成

Cの宣言:

HINTERNET InternetOpen(
	IN LPCTSTR Agent,
	IN DWORD AccessType,
	IN LPCTSTR ProxyName,
	IN LPCSTR ProxyBypass,
	IN DWORD Flags);

説明:

アプリケーションが使用するWININETの初期化を行い、WININET呼び出し用のハンドルを作成する。

引数の意味は以下の通り。
Agent HTTPによりインターネットにアクセスする際のエージェント名。
AccessType アクセス方法を指定するフラグ。後述の表を参照。
ProxyName プロクシによるアクセスが指定されている場合に、プロクシサーバ名を指定する。NULLの場合、レジストリからプロクシ情報が取得される。プロトコルごとに異なるプロクシを指定したい場合などの指定についてはSDKのドキュメントを参照。
ProxyBypass (オプションの)ローカルでの既知のホスト名またはIPアドレスのリスト。これらのホストに対する要求はプロクシを通さずに行われる。このリストにはワイルドカードを含めることができる。
Flags Win32インターネット関数の振る舞いを指定するフラグ。後述の表を参照。

AccessTypeに指定可能な値は、以下のいずれかのフラグである。
INTERNET_OPEN_TYPE_DIRECT 全てのホスト名をローカルに解決する。
INTERNET_OPEN_TYPE_PROXY プロクシバイパスリストが与えられていない場合やプロクシを通さずに名前解決が行われる場合を除いて、要求はプロクシに渡す。要求がプロクシに渡されないケースの場合は、本関数はINTERNET_OPEN_TYPE_DIRECTとして動作する。
INTERNET_OPEN_TYPE_PRECONFIG レジストリに保持されている設定を利用する。

Flagsに指定可能な値は以下のフラグの組み合わせである。
INTERNET_FLAG_OFFLINE キャッシュからのみデータ取得が行われる。
INTERNET_FLAG_ASYNC 非同期で処理が行われる。

戻り値は、作成されたインターネットハンドルである。失敗した場合、NULLが返される。

Cサンプル:

HTTPで、http://www.geocities.co.jp/SiliconValley-PaloAlto/5920/other.htmlというファイルを読み込み、結果を表示する。
void GetHttpFile()
{
	HINTERNET hInternet;
	HINTERNET hFile;
	char Buf[1000];
	DWORD ReadSize;
	BOOL bResult;

	/* WININET初期化 */
	hInternet = InternetOpen(
		"WININET Sample Program",
		INTERNET_OPEN_TYPE_PRECONFIG,
		NULL,
		NULL,
		0);

	/* URLのオープン */
	hFile = InternetOpenUrl(
		hInternet,
		"http://www.geocities.co.jp/SiliconValley-PaloAlto/5920/other.html",
		NULL,
		0,
		INTERNET_FLAG_RELOAD,
		0);

	/* オープンしたURLからデータを(1000バイトずつ)読み込む */
	for(;;) {
		ReadSize = 1000;

		bResult = InternetReadFile(
			hFile,
			Buf,
			1000,
			&ReadSize);

		/* 全て読み込んだらループを抜ける */
		if(bResult && (ReadSize == 0)) break;

		Buf[ReadSize] = '\0';
		printf("%s", Buf);
	}

	/* 後処理 */
	InternetCloseHandle(hFile);
	InternetCloseHandle(hInternet);
}

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

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