ReadIEKey.cpp
上传用户:ayxnkj
上传日期:2022-06-19
资源大小:11910k
文件大小:8k
源码类别:

搜索引擎

开发平台:

Visual C++

  1. #include "StdAfx.h"
  2. #include <UrlHist.h> 
  3. #include "ReadIEKey.h"
  4. CReadIEKey::CReadIEKey(void)
  5. {
  6. }
  7. CReadIEKey::~CReadIEKey(void)
  8. {
  9. }
  10. int CReadIEKey::KeyOfYahoo(CString sWebTitle)
  11. {
  12. if(sWebTitle.Find(L"Yahoo!専嶕") == -1)
  13. {
  14. return 0;
  15. }else
  16. {
  17. m_KeyWord = sWebTitle.TrimLeft( L"Yahoo!専嶕 - " );
  18. return 1;
  19. }
  20. }
  21. int CReadIEKey::KeyOfGoogle(CString sWebTitle)
  22. {
  23. if(sWebTitle.Find(L"Google 専嶕") == -1)
  24. {
  25. return 0;
  26. }else
  27. {
  28. m_KeyWord = sWebTitle.TrimRight(L" - Google 専嶕");
  29. return 1;
  30. }
  31. }
  32. int CReadIEKey::KeyOfYahooBus(CString sWebTitle)
  33. {
  34. int PosKey1,PosKey2,Lenth;
  35. if(sWebTitle.Find(L"寢壥 - Yahoo!楬慄忣曬") == -1)
  36. {
  37. return 0;
  38. }else
  39. {
  40. sWebTitle = sWebTitle.TrimLeft( L"乽" );
  41. sWebTitle = sWebTitle.TrimRight( L"乿傊偺宱楬丄塣捓扵嶕寢壥 - Yahoo!楬慄忣曬" );
  42. Lenth = sWebTitle.GetLength();
  43. PosKey1 = sWebTitle.Find(L"乿");
  44. PosKey2 = sWebTitle.Find(L"乽");
  45. m_KeyBus.sKeyStartBus = sWebTitle.Left(PosKey1);
  46. m_KeyBus.sKeyEndBus = sWebTitle.Right(Lenth - PosKey2 - 1);
  47. return 1;
  48. }
  49. }
  50. void CReadIEKey::GetLastnKeyWord()
  51. {
  52. HRESULT hr;
  53. STATURL su;   
  54. ULONG celt; 
  55. IEnumSTATURL *pesu;   
  56. IUrlHistoryStg2 *puhs;
  57. KEYINFO TempInfo;
  58. m_KeyNum = 0;
  59. hr = CoInitialize(NULL);
  60. hr = CoCreateInstance(CLSID_CUrlHistory,NULL,CLSCTX_INPROC_SERVER,IID_IUrlHistoryStg,(LPVOID*)&puhs);   
  61.   
  62. if(SUCCEEDED(hr))   
  63. {   
  64. hr = puhs->EnumUrls(&pesu);   
  65. if(SUCCEEDED(hr))   
  66. {   
  67. while(SUCCEEDED(pesu->Next(1,&su,&celt))&&celt>0)   
  68. {   
  69. if(su.pwcsTitle)  
  70. {
  71. if(KeyOfYahoo(su.pwcsTitle) || 
  72.    KeyOfGoogle(su.pwcsTitle))
  73. {
  74. m_KeyInfo[m_KeyNum].MultiFind = FALSE;
  75. for(int i=0 ; i<m_KeyNum ; i++ )
  76. {
  77. if(lstrcmpi(m_KeyInfo[i].sKeyName,m_KeyWord) == 0)
  78. {
  79. m_KeyInfo[i].FindNum++;
  80. m_KeyInfo[m_KeyNum].MultiFind = TRUE;
  81. }
  82. }
  83. if(m_KeyInfo[m_KeyNum].MultiFind == FALSE)
  84. {
  85. m_KeyInfo[m_KeyNum].sKeyName = m_KeyWord;
  86. m_KeyInfo[m_KeyNum].VisitTime = su.ftLastUpdated;
  87. m_KeyInfo[m_KeyNum].FindNum = 1;
  88. m_KeyNum++;
  89. }
  90. }
  91. }
  92.  
  93. }   
  94. puhs->Release();   
  95. }   
  96. puhs->Release();   
  97. }
  98. for(int j=0 ; j<m_KeyNum ; j++)
  99. {
  100. for(int k=0; k<m_KeyNum-j-1;k++) 
  101. if(CompareFileTime(&m_KeyInfo[k].VisitTime,&m_KeyInfo[k+1].VisitTime) < 0) 
  102. {
  103. TempInfo = m_KeyInfo[k+1];
  104. m_KeyInfo[k+1] = m_KeyInfo[k];
  105. m_KeyInfo[k] = TempInfo;
  106. }
  107. }
  108. }
  109. }
  110. void CReadIEKey::GetMostnKeyWord()
  111. {
  112. int i,j,k;
  113. HRESULT hr;
  114. STATURL su;   
  115. ULONG celt; 
  116. IEnumSTATURL *pesu;   
  117. IUrlHistoryStg2 *puhs;
  118. KEYINFO TempInfo;
  119. m_KeyNum = 0;
  120. hr = CoInitialize(NULL);
  121. hr = CoCreateInstance(CLSID_CUrlHistory,NULL,CLSCTX_INPROC_SERVER,IID_IUrlHistoryStg,(LPVOID*)&puhs);   
  122.   
  123. if(SUCCEEDED(hr))   
  124. {   
  125. hr = puhs->EnumUrls(&pesu);   
  126. if(SUCCEEDED(hr))   
  127. {   
  128. while(SUCCEEDED(pesu->Next(1,&su,&celt))&&celt>0)   
  129. {   
  130. if(su.pwcsTitle)  
  131. {
  132. if(KeyOfYahoo(su.pwcsTitle) || 
  133.    KeyOfGoogle(su.pwcsTitle))
  134. {
  135. m_KeyInfo[m_KeyNum].MultiFind = FALSE;
  136. for(i=0 ; i<m_KeyNum ; i++ )
  137. {
  138. if(lstrcmpi(m_KeyInfo[i].sKeyName,m_KeyWord) == 0)
  139. {
  140. m_KeyInfo[i].FindNum++;
  141. m_KeyInfo[m_KeyNum].MultiFind = TRUE;
  142. }
  143. }
  144. if(m_KeyInfo[m_KeyNum].MultiFind == FALSE)
  145. {
  146. m_KeyInfo[m_KeyNum].sKeyName = m_KeyWord;
  147. m_KeyInfo[m_KeyNum].VisitTime = su.ftLastUpdated;
  148. m_KeyInfo[m_KeyNum].FindNum = 1;
  149. m_KeyNum++;
  150. }
  151. }
  152. }
  153.  
  154. }   
  155. puhs->Release();   
  156. }   
  157. puhs->Release();   
  158. }
  159. for(j=0 ; j<m_KeyNum ; j++)
  160. {
  161. for(k=0; k<m_KeyNum-j-1;k++) 
  162. if(CompareFileTime(&m_KeyInfo[k].VisitTime,&m_KeyInfo[k+1].VisitTime) < 0) 
  163. {
  164. TempInfo = m_KeyInfo[k+1];
  165. m_KeyInfo[k+1] = m_KeyInfo[k];
  166. m_KeyInfo[k] = TempInfo;
  167. }
  168. }
  169. }
  170. for(j=0 ; j<m_KeyNum ; j++)
  171. {
  172. for(k=0; k<m_KeyNum-j-1;k++) 
  173. if(m_KeyInfo[k].FindNum < m_KeyInfo[k+1].FindNum) 
  174. {
  175. TempInfo = m_KeyInfo[k+1];
  176. m_KeyInfo[k+1] = m_KeyInfo[k];
  177. m_KeyInfo[k] = TempInfo;
  178. }
  179. }
  180. }
  181. }
  182. void CReadIEKey::GetLastnBus()
  183. {
  184. HRESULT hr;
  185. STATURL su;   
  186. ULONG celt; 
  187. IEnumSTATURL *pesu;   
  188. IUrlHistoryStg2 *puhs;
  189. BUSKEYWORD TempInfo;
  190. m_KeyNum = 0;
  191. hr = CoInitialize(NULL);
  192. hr = CoCreateInstance(CLSID_CUrlHistory,NULL,CLSCTX_INPROC_SERVER,IID_IUrlHistoryStg,(LPVOID*)&puhs);   
  193.   
  194. if(SUCCEEDED(hr))   
  195. {   
  196. hr = puhs->EnumUrls(&pesu);   
  197. if(SUCCEEDED(hr))   
  198. {   
  199. while(SUCCEEDED(pesu->Next(1,&su,&celt))&&celt>0)   
  200. {   
  201. if(su.pwcsTitle)  
  202. {
  203. if(KeyOfYahooBus(su.pwcsTitle))
  204. {
  205. m_KeyBusInfo[m_KeyNum].MultiFind = FALSE;
  206. for(int i=0 ; i<m_KeyNum ; i++ )
  207. {
  208. if(lstrcmpi(m_KeyBusInfo[i].sKeyStartBus,m_KeyBus.sKeyStartBus) == 0
  209. &&lstrcmpi(m_KeyBusInfo[i].sKeyEndBus,m_KeyBus.sKeyEndBus) == 0)
  210. {
  211. m_KeyBusInfo[i].FindNum++;
  212. m_KeyBusInfo[m_KeyNum].MultiFind = TRUE;
  213. }
  214. }
  215. if(m_KeyBusInfo[m_KeyNum].MultiFind == FALSE)
  216. {
  217. m_KeyBusInfo[m_KeyNum].sKeyStartBus = m_KeyBus.sKeyStartBus;
  218. m_KeyBusInfo[m_KeyNum].sKeyEndBus = m_KeyBus.sKeyEndBus;
  219. m_KeyBusInfo[m_KeyNum].VisitTime = su.ftLastUpdated;
  220. m_KeyBusInfo[m_KeyNum].FindNum = 1;
  221. m_KeyNum++;
  222. }
  223. }
  224. }
  225.  
  226. }   
  227. puhs->Release();   
  228. }   
  229. puhs->Release();   
  230. }
  231. for(int j=0 ; j<m_KeyNum ; j++)
  232. {
  233. for(int k=0; k<m_KeyNum-j-1;k++) 
  234. if(CompareFileTime(&m_KeyBusInfo[k].VisitTime,&m_KeyBusInfo[k+1].VisitTime) < 0) 
  235. {
  236. TempInfo = m_KeyBusInfo[k+1];
  237. m_KeyBusInfo[k+1] = m_KeyBusInfo[k];
  238. m_KeyBusInfo[k] = TempInfo;
  239. }
  240. }
  241. }
  242. }
  243. void CReadIEKey::GetMostnBus()
  244. {
  245. HRESULT hr;
  246. STATURL su;   
  247. ULONG celt; 
  248. IEnumSTATURL *pesu;   
  249. IUrlHistoryStg2 *puhs;
  250. BUSKEYWORD TempInfo;
  251. m_KeyNum = 0;
  252. hr = CoInitialize(NULL);
  253. hr = CoCreateInstance(CLSID_CUrlHistory,NULL,CLSCTX_INPROC_SERVER,IID_IUrlHistoryStg,(LPVOID*)&puhs);   
  254.   
  255. if(SUCCEEDED(hr))   
  256. {   
  257. hr = puhs->EnumUrls(&pesu);   
  258. if(SUCCEEDED(hr))   
  259. {   
  260. while(SUCCEEDED(pesu->Next(1,&su,&celt))&&celt>0)   
  261. {   
  262. if(su.pwcsTitle)  
  263. {
  264. if(KeyOfYahooBus(su.pwcsTitle))
  265. {
  266. m_KeyBusInfo[m_KeyNum].MultiFind = FALSE;
  267. for(int i=0 ; i<m_KeyNum ; i++ )
  268. {
  269. if(lstrcmpi(m_KeyBusInfo[i].sKeyStartBus,m_KeyBus.sKeyStartBus) == 0
  270. &&lstrcmpi(m_KeyBusInfo[i].sKeyEndBus,m_KeyBus.sKeyEndBus) == 0)
  271. {
  272. m_KeyBusInfo[i].FindNum++;
  273. m_KeyBusInfo[m_KeyNum].MultiFind = TRUE;
  274. }
  275. }
  276. if(m_KeyBusInfo[m_KeyNum].MultiFind == FALSE)
  277. {
  278. m_KeyBusInfo[m_KeyNum].sKeyStartBus = m_KeyBus.sKeyStartBus;
  279. m_KeyBusInfo[m_KeyNum].sKeyEndBus = m_KeyBus.sKeyEndBus;
  280. m_KeyBusInfo[m_KeyNum].VisitTime = su.ftLastUpdated;
  281. m_KeyBusInfo[m_KeyNum].FindNum = 1;
  282. m_KeyNum++;
  283. }
  284. }
  285. }
  286.  
  287. }   
  288. puhs->Release();   
  289. }   
  290. puhs->Release();   
  291. }
  292. for(int j=0 ; j<m_KeyNum ; j++)
  293. {
  294. for(int k=0; k<m_KeyNum-j-1;k++) 
  295. if(CompareFileTime(&m_KeyBusInfo[k].VisitTime,&m_KeyBusInfo[k+1].VisitTime) < 0) 
  296. {
  297. TempInfo = m_KeyBusInfo[k+1];
  298. m_KeyBusInfo[k+1] = m_KeyBusInfo[k];
  299. m_KeyBusInfo[k] = TempInfo;
  300. }
  301. }
  302. }
  303. for(int j=0 ; j<m_KeyNum ; j++)
  304. {
  305. for(int k=0; k<m_KeyNum-j-1;k++) 
  306. if(m_KeyBusInfo[k].FindNum < m_KeyBusInfo[k+1].FindNum) 
  307. {
  308. TempInfo = m_KeyBusInfo[k+1];
  309. m_KeyBusInfo[k+1] = m_KeyBusInfo[k];
  310. m_KeyBusInfo[k] = TempInfo;
  311. }
  312. }
  313. }
  314. }