ブラウザーのお気に入りを右クリックしてプロパティを見ると、そのURLを表示した回数を知ることができる。この表示回数をプログラム的に取得するにはGetUrlCacheEntryInfoを利用する。
エラーのときやURLを表示したことがなければ関数はfalseを返す。
#include "wininet.h"
#pragma comment(lib,"wininet.lib")
//
// URL表示回数の取得
//
bool GetVisitsCount(LPCTSTR pszURL,DWORD* pdwCount)
{
BOOL fRet;
BYTE* pData;
DWORD cbInfo;
LPINTERNET_CACHE_ENTRY_INFO pInfo;
if(pdwCount == NULL)
return false;
*pdwCount = 0;
cbInfo = 0;
fRet = ::GetUrlCacheEntryInfo(pszURL,NULL,&cbInfo);
if(cbInfo <= 0) //fRetはFALSEが返る
return false;
pData = new BYTE[cbInfo];
if(pData == NULL)
return false;
//データ取得
pInfo = (LPINTERNET_CACHE_ENTRY_INFO)pData;
fRet = ::GetUrlCacheEntryInfo(pszURL,pInfo,&cbInfo);
if(fRet)
*pdwCount = pInfo->dwHitRate;
delete pData;
return fRet ? true : false;
}
void Test(void)
{
bool ret;
DWORD dwCount;
TCHAR pszMessage[1024];
ret = GetVisitsCount(_T("http://www.google.co.jp/"),&dwCount);
if(ret)
{
_stprintf_s(pszMessage,1024 * sizeof(TCHAR),_T("閲覧数は %d 回です"),dwCount);
::MessageBox(NULL,pszMessage,_T(""),MB_OK);
}
else
::MessageBox(NULL,_T("取得に失敗しました"),_T(""),MB_OK);
}
