URLの表示回数を取得する

ブラウザーのお気に入りを右クリックしてプロパティを見ると、そのURLを表示した回数を知ることができる。この表示回数をプログラム的に取得するにはGetUrlCacheEntryInfoを利用する。
エラーのときやURLを表示したことがなければ関数はfalseを返す。

googlevideo.gif

#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);
}

プロジェクトファイルをダウンロード


カテゴリー「Internet Explorer」 のエントリー