익스폴로러에서 열어본 페이지를 삭제하고 몇개나 있는지 알아 보도록 하자
열어본 페이지를 삭제하는 방법은 익스플로러에서 버튼하나만 누르면 되지만 이걸 프로그램으로 짜려면??
은근히 깔끔한 자료가 나오지 않아 찾아 헤매였다;;
우선 열어본 페이지 목록을 삭제하는 코드는 아래와 같다.
HRESULT hr;
CoInitialize( NULL );
IUrlHistoryStg2* pHistory;
DWORD cRef;
hr = CoCreateInstance(CLSID_CUrlHistory, NULL, CLSCTX_INPROC_SERVER,
IID_IUrlHistoryStg2, reinterpret_cast<void **>(&pHistory));
if (SUCCEEDED(hr))
{
// Clear the Internet Explorer history.
hr = pHistory->ClearHistory();
}
cRef = pHistory->Release();
CoUninitialize();
난 그냥 기능만 쓰면 되므로 저대로 해서 사용..ㅋㅋ
저렇게 해서 쓰면 익스플로러에 열여본 페이지 목록을 보면 텅텅 비어있게 되는것을 알 수 있다..
그리고 열어본 페이지 목록의 갯수가 궁금하다면 아래와 같이 카운팅을 하면된다.
int count = 0;
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;
count ++;
}
//여기서 count가 열어본 페이지의 갯수가 되겠다.
아 혹시 저 코드를 사용하는데 아래와 같이 에러가 난다면??
>............... : error C2065: 'STATURL' : 선언되지 않은 식별자입니다.
1>.............. : error C2146: 구문 오류 : ';'이(가) 'url' 식별자 앞에 없습니다.
1>.............. : error C2065: 'url' : 선언되지 않은 식별자입니다.
1>..............: error C2065: 'IUrlHistoryStg2' : 선언되지 않은 식별자입니다.
1>..............: error C2065: 'history' : 선언되지 않은 식별자입니다.
1>.............. : error C2065: 'IEnumSTATURL' : 선언되지 않은 식별자입니다.
......
......
정답은??? -> 물론 헤더파일을 추가 하지 않아서 그렇다 ㅡ,.ㅡ v
아래 헤더파일을 추가하자 ..ㅋㅋ
#include <UrlHist.h>
'Study > API' 카테고리의 다른 글
현재 로그인한 계정명 얻기, 현재 계정이 admin 계정인지 확인하는 방법 (0) | 2011.12.28 |
---|---|
윈도우 64비트 구분 방법 (c, c++, api) 64비트 구분 함수 (0) | 2011.12.07 |
레지스터 데이터 입력 및 삭제... (0) | 2011.09.28 |
바탕화면 새로고침~~ F5 함수!~ (0) | 2011.09.28 |
폴더 복사 방법 (0) | 2011.09.28 |
댓글