Study/API

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

뿡뿡대마왕 2011. 9. 28. 09:30
반응형

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

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

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

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

        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> 


반응형