您的位置:首页 > 其它

如何得到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接口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ie url null server list file