function MyGetUrlCacheEntryInfo(lpszUrlName: PAnsiChar; lpCacheEntryInfo: PInternetCacheEntryInfo; lpdwCacheEntryInfoBufferSize: PDWORD): BOOL;
stdcall; external 'wininet.dll' name 'GetUrlCacheEntryInfoA';
function TForm1.GetCatcheFileName(const aUrl: string; var LocalFile: string): Boolean;
var
dwCacheEntryInfoBufferSize: DWORD;
lpCacheEntryInfo: PInternetCacheEntryInfo;
begin
LocalFile := '';
dwCacheEntryInfoBufferSize := 0;
lpCacheEntryInfo := nil;
MyGetUrlCacheEntryInfo(url, lpCacheEntryInfo, @dwCacheEntryInfoBufferSize);
GetMem(lpCacheEntryInfo, dwCacheEntryInfoBufferSize);
try
Result := MyGetUrlCacheEntryInfo(url, lpCacheEntryInfo, @dwCacheEntryInfoBufferSize);
if Result then
begin
LocalFile := lpCacheEntryInfo^.lpszLocalFileName;
end;
finally
freemem(lpCacheEntryInfo);
end;
end;
本程序在delphi 7 + windows xp sp2下调试通过,需要引用单元WinINet单元