Getting the History from Internet Explorer
Posted
by Akash Kava
on October 2nd, 2002

Click here for a larger image.
Environment: VC6
I just wanted to access the history of Internet Explorer. I found no code anywhere to get it directly, but somehow I managed to combine some of code and get this working application. The code isn't very great, but it is somewhat useful, you can say. I am not a great writer, so don't expect a good explanation. My coding style is self-explanatory. If you open the IEHistory.h file, you will get to see everything.
[
#include <atlbase.h>
#include <comdef.h>
#include <mshtml.h>
#include <UrlHist.h>
#include <afxtempl.h>
BOOL GetHistory(CStringList & list)
{
STATURL url;
CString strUrl;
ULONG uFetched;
IUrlHistoryStg2Ptr history;
IEnumSTATURLPtr enumPtr;
if(FAILED(CoCreateInstance(CLSID_CUrlHistory,
NULL,
CLSCTX_INPROC_SERVER,
IID_IUrlHistoryStg2,
( void**)&history)))
{
return false ;
}
if(FAILED(history->EnumUrls(&enumPtr)))
return false;
while(SUCCEEDED(enumPtr->Next(1,&url,&uFetched)))
{
if(uFetched==0)
break;
strUrl = url.pwcsUrl;
list.AddTail(strUrl);
}
return true;
}
]
Downloads
Download demo project - 28 KbDownload source - 11 Kb

Comments
This code does not show all history
Posted by Yuri.Gubanov on 06/24/2006 04:34pmI run the sample on my computer where IE options set to store history for 150 days. Only latest 3 days were shown although IE itself shows much more history (up to 21 weeks).
ReplyCoCreateInstance failed?
Posted by linfeng1216 on 03/08/2004 07:53amCoCreateInstance failed?
Replysomething useful~ but win2000 & ie5.5 are needed at least in the app.
Posted by Legacy on 11/19/2003 12:00amOriginally posted by: gothica
STATURL is minimum available for IE5.5 and Win2000.
ReplyCan Mr.Akash tell me how to do in win9x,ie5.0 ...?
my email:allenhooo@sina.com, thanks a lot!
Show history for ALL users?
Posted by Legacy on 09/05/2003 12:00amOriginally posted by: Jeff
If there are many users using my computer, how can I get the history for each one of the users? Assuming I have Administrator access...
Thanks for the article!!!
ReplyAfxOleInit() unsuccessful, return 0
Posted by Legacy on 06/23/2003 12:00amOriginally posted by: shawn
AfxOleInit() unsuccessful, return 0
Replynot compile?
Posted by Legacy on 01/03/2003 12:00amOriginally posted by: mohad
istoryDisplay.cpp
c:\program files\microsoft visual studio\vc98\include\mshtml.h(16768) : error C2367: 'IHTMLControlElement' : redefinition; different uuid specifiers
c:\program files\microsoft visual studio\vc98\include\mshtml.h(16768) : see declaration of 'IHTMLControlElement'
HistoryDisplayDlg.cpp
c:\program files\microsoft visual studio\vc98\include\mshtml.h(16768) : error C2367: 'IHTMLControlElement' : redefinition; different uuid specifiers
c:\program files\microsoft visual studio\vc98\include\mshtml.h(16768) : see declaration of 'IHTMLControlElement'
HistoryListCtrl.cpp
c:\program files\microsoft visual studio\vc98\include\mshtml.h(16768) : error C2367: 'IHTMLControlElement' : redefinition; different uuid specifiers
c:\program files\microsoft visual studio\vc98\include\mshtml.h(16768) : see declaration of 'IHTMLControlElement'
ListControlItem.cpp
Generating Code...
Error executing cl.exe.
HistoryDisplay.exe - 3 error(s), 0 warning(s)
what's going on here?
Thank you so much!
~~mohad
Reply
Memory Leak.
Posted by Legacy on 12/17/2002 12:00amOriginally posted by: Adam Choison
ReplyObject failed to create
Posted by Legacy on 10/18/2002 12:00amOriginally posted by: Toby
I tried out this code but the object is not being created.. the value being returned by CoCreateInstance is "-2147221008" (2147746288 unsigned), which doesn't map to one of the return codes listed under MSDN.
I checked the registry and the CLSID entries for both IUrlHistoryStg and IUrlHistoryStg2 are there... what do I need to do to get this to work??
Thanks
Toby
Replyexcellent
Posted by Legacy on 10/03/2002 12:00amOriginally posted by: roshan
i found it excellent
Reply