BOOL InternetReadFile( IN HINTERNET hFile, IN LPVOID Buf, IN DWORD BufSize, OUT LPDWORD ReadSize);
読み込みがファイルの終端まで達した場合、戻り値はTRUEが返され、ReadSizeにはゼロが設定される。
引数の意味は以下の通り。
| hFile | InternetOpenUrl、FtpOpenFile、GopherOpenFile、HttpOpenRequestのいずれかで返されたハンドル。 |
| Buf | 読み込み結果のデータ。 |
| BufSize | Bufのサイズ。 |
| ReadSize | 実際に読み込まれたデータのサイズ。 |
戻り値は、関数の実行に成功したか否かを表す真偽値である。
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);
}