如何得到IE的历史记录和清除IE的历史记录
2011-11-18 14:23
417 查看
转载自: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接口
相关的接口: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历史记录
- 如何清除搜索框内的搜索历史记录?
- VB IE 清除历史记录
- 如何清除Linux操作系统命令的历史记录
- 【原创】关于IE地址栏历史记录的清除
- C# 系统应用之清除Cookies、IE临时文件、历史记录
- 教你如何清除搜索计算机的历史记录
- 如何清除QQ登陆栏的历史记录
- C# 系统应用之清除Cookies、IE临时文件、历史记录 转载
- 如何清除Visual Studio中文件字段查找的历史记录
- 如何清除“远程桌面连接”的历史记录?
- 如何清除搜索引擎下拉菜单里的历史记录
- 如何快速清除IE8浏览器的历史记录
- 如何将Windows7系统中“运行”历史记录全部清除
- 如何向IE的历史记录添加记录?
- 如何清除SQL Server 2008中登陆时的历史记录
- ubuntu 11.10如何清除最近历史记录
- 如何清除Shell历史记录
- c# 清除IE记录 历史记录 临时文件 Cookie