//
usingsystem.runtime.interopservices;
[structlayout(layoutkind.sequential,charset = charset.auto)]
public struct internet_cache_entry_info
... {
public int dwstructsize;
public intptrlpszsourceurlname;
public intptrlpszlocalfilename;
public int cacheentrytype;
public int dwusecount;
public int dwhitrate;
public int dwsizelow;
public int dwsizehigh;
public filetimelastmodifiedtime;
public filetimeexpiretime;
public filetimelastaccesstime;
public filetimelastsynctime;
public intptrlpheaderinfo;
public int dwheaderinfosize;
public intptrlpszfileextension;
public int dwexemptdelta;
}
[dllimport( " wininet.dll " ,setlasterror = true ,charset = charset.auto)]
public static extern intptrfindfirsturlcacheentry([marshalas(unmanagedtype.lptstr)] string urlsearchpattern,intptrlpfirstcacheentryinfo, ref int lpdwfirstcacheentryinfobuffersize);
[dllimport( " wininet.dll " ,setlasterror = true ,charset = charset.auto)]
public static extern bool geturlcacheentryinfo([marshalas(unmanagedtype.lptstr)] string lpszurlname,intptrlpcacheentryinfo, ref int lpdwcacheentryinfobuffersize);
public static string getcatchfilename( string url)
... {
int nneeded = 0 ,nbufsize;
intptrbuf;
findfirsturlcacheentry( null ,intptr.zero, ref nneeded);
nbufsize = nneeded;buf = marshal.allochglobal(nbufsize);
geturlcacheentryinfo(url,buf, ref nneeded);
internet_cache_entry_infocacheitem;
geturlcacheentryinfo(url,buf, ref nneeded);
cacheitem = (internet_cache_entry_info)marshal.ptrtostructure(buf, typeof (internet_cache_entry_info));
string res = marshal.ptrtostringauto(cacheitem.lpszlocalfilename);
return (res);
}
[structlayout(layoutkind.sequential,charset = charset.auto)]
public struct internet_cache_entry_info
... {
public int dwstructsize;
public intptrlpszsourceurlname;
public intptrlpszlocalfilename;
public int cacheentrytype;
public int dwusecount;
public int dwhitrate;
public int dwsizelow;
public int dwsizehigh;
public filetimelastmodifiedtime;
public filetimeexpiretime;
public filetimelastaccesstime;
public filetimelastsynctime;
public intptrlpheaderinfo;
public int dwheaderinfosize;
public intptrlpszfileextension;
public int dwexemptdelta;
}
[dllimport( " wininet.dll " ,setlasterror = true ,charset = charset.auto)]
public static extern intptrfindfirsturlcacheentry([marshalas(unmanagedtype.lptstr)] string urlsearchpattern,intptrlpfirstcacheentryinfo, ref int lpdwfirstcacheentryinfobuffersize);
[dllimport( " wininet.dll " ,setlasterror = true ,charset = charset.auto)]
public static extern bool geturlcacheentryinfo([marshalas(unmanagedtype.lptstr)] string lpszurlname,intptrlpcacheentryinfo, ref int lpdwcacheentryinfobuffersize);
public static string getcatchfilename( string url)
... {
int nneeded = 0 ,nbufsize;
intptrbuf;
findfirsturlcacheentry( null ,intptr.zero, ref nneeded);
nbufsize = nneeded;buf = marshal.allochglobal(nbufsize);
geturlcacheentryinfo(url,buf, ref nneeded);
internet_cache_entry_infocacheitem;
geturlcacheentryinfo(url,buf, ref nneeded);
cacheitem = (internet_cache_entry_info)marshal.ptrtostructure(buf, typeof (internet_cache_entry_info));
string res = marshal.ptrtostringauto(cacheitem.lpszlocalfilename);
return (res);
}