如何得到IE的記錄和清除IE的記錄
來源:互聯網
上載者:User
相關的介面: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介面