HINTERNET hInternet = InternetOpen(
TEXT("Opera/8.50 (Windows NT 5.1; U; ru)"),
INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
if (hInternet != NULL)
{
HINTERNET hRequest = InternetOpenUrl(hInternet,
_T("http://www.freedom-vrn.ru/images/weather/nt_clear.gif")
, NULL, 0, 0, 0);
if(hRequest)
{
TCHAR path[MAX_PATH + 1];
GetCurrentDirectory(MAX_PATH, path);
wcscat(path,_T("\\res\\image.gif"));
DWORD dwRead;
unsigned char szTemp[1024];
std::ofstream image_file;
image_file.open(path, std::ios::binary);
//понятия не имею, как сохранить изображение, поэтому написал так, что, естесственно, не правильно
while (InternetReadFile(hRequest, (LPVOID)szTemp, 1024, &dwRead))
{
if (!dwRead) break;
image_file<<szTemp;
}
InternetCloseHandle(hRequest);
}
InternetCloseHandle(hInternet);
}
wininet и загрузка изображения gif
Мне необходимо сохранить в файл изображение gif из интернета. Текст страницы сохраняется, а вот с картинкой проблемы.
Привожу свой код:
Код:
Заранее благодарю за помощь
Для этой цели вполне подойдет функция UrlDownloadToFile(). Конечно, вы можете использовать
любой другой способ загрузки файла, например, поискав его в кэше IE. Но мои эксперименты
с функцией GetUrlCacheEntryInfo не привели к надежному результату. Примерно, для половины
рисунков возвращалась ошибка, хотя реально файлы во временном каталоге присутствовали. Кто
знает в чем дело, пожалуйста, поделитесь. UrlDownloadToFile в этом смысле работает надежнее,
к тому же, самостоятельно использует кэш. Кроме этого, реализовав callback интерфейс
IBindStatusCallback можно непосредственно следить за процессом загрузки. Итак, файлы рисунков сохраняются,
осталось перед сохранением текста поменять атрибут src всех тэгов <IMG>, указавав URL наших файлов.
Все, теперь можно сохранить и текст.
HRESULT URLDownloadToFile( LPUNKNOWN pCaller,
LPCTSTR szURL, LPCTSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB);
Iz urlmon.dll funkciya, a ne wininet.dll