Пишу программу в которую с помощью Drag&Drop из IE перетягивается картинка. Т.е в программе получаю адрес (линк) image. Теперь, чтобы не качать эту пикчу, лезу в кэш ИЕ и выдергиваю ее оттуда.
Проблема состоит в том, что не все пикчи таким образом получается вытащить. Очень часто получаю file not found. И самое странное что к примеру есть хтмл и в нем три ссылки, первую и третью удается перетащить, а на второй говорит file not found, хотя в кеше этот файл лежит.
Может быть кто занимался подобной задачей или знает как это рашется?
код по которому я получаю локальный путь к файлу
long CWininetXCtrl::GetUrlCacheEntryInfoX(LPCTSTR UrlName)
{
DWORD dwEntrySize=0;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry;
if (!GetUrlCacheEntryInfo(UrlName,NULL,&dwEntrySize))
{
long lError = GetLastError();
if (lError!=ERROR_INSUFFICIENT_BUFFER)
{
memset (_szUrlName_,0,sizeof(_szUrlName_));
return 0L; // FALSE;
}
else
lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO)
new char[dwEntrySize];
}
else
{
memset (_szUrlName_,0,sizeof(_szUrlName_));
return 0L; //FALSE; // should not be successful w/ NULL buffer
// and 0 size
}
if (!GetUrlCacheEntryInfo(UrlName,lpCacheEntry,&dwEntrySize))
{
memset (_szUrlName_,0,sizeof(_szUrlName_));
return 0L; //FALSE;
}
else
{
memset (_szUrlName_,0,sizeof(_szUrlName_));
strcpy(_szUrlName_,(char*)lpCacheEntry->lpszLocalFileName);
return 1L; //TRUE;
}
return 0L;
}