如何得到IE的历史记录和清除IE的历史记录
来源:互联网 发布:小跳蛙这歌有毒 知乎 编辑:程序博客网 时间:2024/05/22 06:29
转载自:http://blog.csdn.net/lbird/article/details/724862
相关的接口:IurlHistoryStg、IEnumSTATURL、IurlHistoryStg2
相关的方法:
IurlHistoryStg:: EnumUrls
该方法返回一个IEnumSTATURL接口指针,后者用来枚举IE的历史记录。
LRESULT IEnumSTATURL::Next(ULONG celt, LPSTATURL rgelt, ULONG *pceltFetched)
参数说明:
celt 意义不明,不能为0,可以将其设为1。
Rgelt 是STATURL结构指针,该结构由MS-IE填充。
PceltFetched 由方法返回,返回1表示rgelt结构被成功填充了。若要用到第二参数
内的数据,应该判断该值是否为1。
头文件:UrlHist.h
下面是代码例子(所需头文件:comdef.h, afxtempl.h):
BOOL GetHistory(CStringList & list)
{
STATURL url;
CString strUrl;
ULONG uFetched;
IUrlHistoryStg2* history;
IEnumSTATURL* 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;
}
转者注:不要忘了初始化COM库 CoInitialize(NULL)
另外请参考:http://blog.csdn.net/yzzm521/article/details/1462789
另一个有用的方法:
LRESULT IEnumSTATURL::SetFilter(LPCOLESTR poszFilter, DWORD dwFlags);
可以在调用Next枚举历史记录前调用此方法设置过滤器。PoszFilter应如何设置呢?
通过判断其URL与poszFilter是否完全匹配或前缀匹配。
例如 enumPtr->SetFilter(L"http",STATURL_QUERYFLAG_ISCACHED);
那么记录的URL只有带有http开头,才会被Next枚举到。把poszFilter设置成res、
file等就可以得到不同类型的URL。
另一个方法:ClearHistory
调用它可以清除所有的历史记录,但注意该方法是属于IUrlHistoryStg2接口
- 如何得到IE的历史记录和清除IE的历史记录
- 如何得到IE的历史记录和清除IE的历史记录
- 【原创】关于IE地址栏历史记录的清除
- 如何获取与清除IE历史记录
- 如何获取与清除IE历史记录
- 彻底删除IE的历史记录
- 如何访问IE历史记录
- 如何访问IE历史记录(续)
- 关于IE浏览器历史记录的一些知识
- 关于IE浏览器历史记录的一些知识
- VC 清除IE缓存、cookie、历史记录等
- VC 清除IE缓存、cookie、历史记录等
- 如何快速清除IE8浏览器的历史记录
- 如何清除Linux操作系统命令的历史记录
- 如何清除“远程桌面连接”的历史记录?
- 如何清除Linux操作系统命令的历史记录 .
- 清除VS2005的历史记录和禁用插件
- Android webview的销毁和清除历史记录
- smarty中的缓存问题
- CListBox控件的Multicolumn属性
- MYSQL 内存表的使用总结
- string使用总结
- 如何取的SYBASE中正在执行的SQL语句
- 如何得到IE的历史记录和清除IE的历史记录
- JCA 1.5: 优化和生命周期管理
- smarty缓存
- Smarty缓存
- 反编译工具,很赞
- Hbase shell 常用命令(1)
- 主流web2.0网站的配色参考方案
- 敏捷快发分布式-简述
- EOF是什么?