Posts Tagged ‘FindFirstUrlCacheEntry’

Programmatically getting last visited page from Pocket Internet Explorer

Tuesday, February 17th, 2009

I wrote earlier about my hack for syncing my browsing between my computer and mobile.

One of the most fiddly bits of implementing this was how to get the last visited page from Pocket Internet Explorer on my phone. In case this is useful to anyone, here is a quick description of how I did it.

I wrote the code to get the last visited page in C++. I couldn’t find any way to access the browser, or the address bar, programmatically.

The closest I could find is a set of Windows Internet Services API calls which let you have direct access to the browser cache used by Pocket Internet Explorer.

I wrote the code for Pocket Internet Explorer on Windows Mobile, but to the best of my knowledge it should work on regular Internet Explorer. I’ve not tried it because, let’s be honest, who uses Internet Explorer? 😉

The approach was to use FindFirstUrlCacheEntryEx and FindNextUrlCacheEntryEx to enumerate through the INTERNET_CACHE_ENTRY_INFO entries in the Internet cache.

Each INTERNET_CACHE_ENTRY_INFO item stores (amongst other information) the URL it was downloaded from, and the time the cache item was last accessed.

So I find the last page the user has visited by enumerating through the cache, and store the URL for the cache item with the latest last-accessed time.

(more…)