結局DeleteUrlCacheEntry()使わないとキャッシュ使われちゃう。
OpenURL()とかにflag指定あるけど機能してないっぽい。
BOOL Web_Downloader(LPCTSTR lpszURL, LPCTSTR lpszFileName)
{
CInternetSession session;
CStdioFile file;
CInternetFile* pFile = NULL;
DWORD dwBytesRead = 0;
BOOL bSuccess = FALSE;
try
{
DeleteUrlCacheEntry(lpszURL);
pFile = (CInternetFile*)session.OpenURL(lpszURL);
if (pFile != NULL)
{
if (file.Open(lpszFileName, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary))
{
const long buffersize = 5*1024*1024;
BYTE *buffer = new BYTE[buffersize*2];
DWORD dwRead;
while ((dwRead = pFile->Read(buffer, buffersize)) > 0)
{
// ファイルに書き込み
file.Write(buffer, dwRead);
dwBytesRead += dwRead;
// 進捗を表示
// ファイルサイズをカンマ付きの文字列に変換して、ダイアログに表示する
char szBuf[128];
int2NumberFromat(szBuf, 128, dwBytesRead);
CString message;
message.Format(_T("%s byte ダウンロード済み"), szBuf);
}
file.Close();
bSuccess = TRUE;
delete [] buffer;
}
}
}
catch (CInternetException* e)
{
e->Delete();
if (pFile != NULL) {
pFile->Close();
delete pFile;
}
}
if (pFile != NULL) {
pFile->Close();
delete pFile;
}
return bSuccess;
}