如何得到IE的历史记录和清除IE的历史记录

相关的接口: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;
                    
                     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;
}
 
 
 
另一个有用的方法 :
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接口
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值