結局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; }