첫번쩨 웹브라우저 컨트롤 이용
hIEWnd = GetDlgItem(hDlg, IDC_EXPLORER1);
if(S_OK == AtlAxGetControl(hIEWnd, &pUnk)){
if(S_OK == pUnk->QueryInterface(IID_IWebBrowser2, (void**)&pWeb)){
CComVariant varEmpty, varUrl("http://www.naver.com");
pWeb->Navigate2(&varUrl, &varEmpty, &varEmpty, &varEmpty, &varEmpty);
}
pUnk->Release();
}
두번째 모니커 이용
{
IDispatch * pDisp=NULL;
if(S_OK == pWeb->get_Document(&pDisp) && pDisp){
IHTMLDocument2* pDoc=NULL;
if(S_OK == pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc)){
IMoniker* pMoniker=NULL;
if(S_OK == CreateURLMoniker(NULL, L"http://www.yahoo.com", &pMoniker) && pMoniker){
IBindCtx* pbc=NULL;
if(S_OK == CreateBindCtx(NULL, &pbc) && pbc){
IPersistMoniker* pPersistMoniker=NULL;
if(S_OK == pDoc->QueryInterface(IID_IPersistMoniker, (void**)&pPersistMoniker) && pPersistMoniker){
pPersistMoniker->Load(FALSE, pMoniker, pbc, STGM_READ);
pPersistMoniker->Release();
}
pbc->Release();
}
pMoniker->Release();
}
pDoc->Release();
}
pDisp->Release();
}
}
두번째의 경우는 백그라운드 작업을 하고 싶을때 사용하면 좋을 듯하다.
단순히 HTML 문서 수정이나 파싱만 필요한 경우,,,
번거롭게 웹브라우져 컨트롤을 로딩해서 사용자 화면에 띄울 필요가 없다.
참고로 아래와 같이 다큐먼트 객체만 따로 생성할 수 있다.
CoCreateInstance(CLSID_HTMLDocument, NULL,
CLSCTX_INPROC_SERVER, IID_IHTMLDocument2, (LPVOID*)&pDoc);
'웹, HTML' 카테고리의 다른 글
다운로드 진행상황 콜백 구현부분 참조 (0) | 2008.09.15 |
---|---|
URLDownloadToFile 에서의 콜백 구현 (1) | 2008.09.15 |
Internet Explorer Architecture - 인터넷 익스플로러 아키텍쳐 (0) | 2008.09.13 |
Unified Browsing with ActiveX Extensions Brings the Internet to Your Desktop (0) | 2008.09.13 |
HOWTO: WebBrowser 컨트롤의 상황에 맞는 표준 메뉴에 항목 추가 - msdn 한글 (1) | 2008.09.12 |
Web에서 APP로 메세지 전달과 자바스크립트(javascript) 호출 (1) | 2008.09.11 |
DHTML Editor 만들어 보기 - 인터페이스 관계 도식 및 설명 (1) | 2008.09.11 |