int WINAPI RetrieveStream(HWND hX, LPSTR lpszUrl)
{
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry;
DWORD dwEntrySize=0,dwStreamSize=0;
HANDLE hStream;
LPSTR lpszOut;
RetrieveUrlCacheEntryStream(lpszUrl,NULL, &dwEntrySize, TRUE, 0);
lpCacheEntry = LPINTERNET_CACHE_ENTRY_INFO(new char[dwEntrySize]);
if (!(hStream = RetrieveUrlCacheEntryStream(lpszUrl,lpCacheEntry,
&dwEntrySize, TRUE, 0)))
{
ErrorOut(hX,GetLastError(),"RetrieveUrlCacheEntryStream");
return FALSE;
}
else
{
dwStreamSize = lpCacheEntry->dwSizeLow;
lpszOut = new char[dwStreamSize];
if (!ReadUrlCacheEntryStream(hStream,0,LPVOID(lpszOut),&dwStreamSize,
0))
{
ErrorOut(hX,GetLastError(),"ReadUrlCacheEntryStream");
return FALSE;
}
else
{
lpszOut[dwStreamSize]='/0';
SetDlgItemText(hX,IDC_CacheDump,lpszOut);
return TRUE;
}
}
delete (lpCacheEntry);
delete (lpszOut);
if (!UnlockUrlCacheEntryStream(hStream,0))
{
ErrorOut(hX,GetLastError(),"UnlockUrlCacheEntryStream");
return FALSE;
}
else
return TRUE;
}
{
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry;
DWORD dwEntrySize=0,dwStreamSize=0;
HANDLE hStream;
LPSTR lpszOut;
RetrieveUrlCacheEntryStream(lpszUrl,NULL, &dwEntrySize, TRUE, 0);
lpCacheEntry = LPINTERNET_CACHE_ENTRY_INFO(new char[dwEntrySize]);
if (!(hStream = RetrieveUrlCacheEntryStream(lpszUrl,lpCacheEntry,
&dwEntrySize, TRUE, 0)))
{
ErrorOut(hX,GetLastError(),"RetrieveUrlCacheEntryStream");
return FALSE;
}
else
{
dwStreamSize = lpCacheEntry->dwSizeLow;
lpszOut = new char[dwStreamSize];
if (!ReadUrlCacheEntryStream(hStream,0,LPVOID(lpszOut),&dwStreamSize,
0))
{
ErrorOut(hX,GetLastError(),"ReadUrlCacheEntryStream");
return FALSE;
}
else
{
lpszOut[dwStreamSize]='/0';
SetDlgItemText(hX,IDC_CacheDump,lpszOut);
return TRUE;
}
}
delete (lpCacheEntry);
delete (lpszOut);
if (!UnlockUrlCacheEntryStream(hStream,0))
{
ErrorOut(hX,GetLastError(),"UnlockUrlCacheEntryStream");
return FALSE;
}
else
return TRUE;
}