InternetReadFile インターネット上のファイルの読み込み

Cの宣言:

BOOL InternetReadFile(
	IN HINTERNET hFile,
	IN LPVOID Buf,
	IN DWORD BufSize,
	OUT LPDWORD ReadSize);

説明:

hFileで指定されたインターネット上のファイルからデータを読み込み、Bufに返す。

読み込みがファイルの終端まで達した場合、戻り値はTRUEが返され、ReadSizeにはゼロが設定される。

引数の意味は以下の通り。
hFile InternetOpenUrlFtpOpenFile、GopherOpenFile、HttpOpenRequestのいずれかで返されたハンドル。
Buf 読み込み結果のデータ。
BufSize Bufのサイズ。
ReadSize 実際に読み込まれたデータのサイズ。

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

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 更新)

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