본문 바로가기
Study/API

익스플로러 열어본 페이지 목록 삭제 및 열어본 페이지 목록의 갯수 세기 !!

by 뿡뿡대마왕 2011. 9. 28.
반응형

익스폴로러에서 열어본 페이지를 삭제하고 몇개나 있는지 알아 보도록 하자

열어본 페이지를 삭제하는 방법은 익스플로러에서 버튼하나만 누르면 되지만 이걸 프로그램으로 짜려면??

은근히 깔끔한 자료가 나오지 않아 찾아 헤매였다;;

우선 열어본 페이지 목록을 삭제하는 코드는 아래와 같다.

        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> 


반응형

댓글