제목에서 말한 걸 할려구 갖은 방법을 다 써봐도 잘 안되더군요...
찾아낸 방법이 예전에 ActiveX 에서 자신을 포함한 웹브라우저를 찾는 방법을 이용하니 제대로 찾아지더군요..
다음은 코드입니다... 필요하신 분들 참고하시기 바랍니다.
// Get IOleContainer interface pointer
IOleContainer* pContainer;
hr = spDoc->QueryInterface(IID_IOleContainer, (void**)&pContainer);
if(FAILED(hr) || pContainer == NULL)
return FALSE;
IServiceProvider *pISP = NULL;
// Get IServiceProvider interface pointer.
hr = pContainer->QueryInterface(IID_IServiceProvider, (void **)&pISP);
pContainer ->Release();
if(FAILED(hr) || pISP == NULL)
return FALSE;
// Get IWebBrowser2 interface pointer.
hr = pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (void**)&pIExplorer);
pISP->Release();
if(FAILED(hr) || pIExplorer == NULL)
{
pIExplorer = NULL;
return FALSE;
}
찾아낸 방법이 예전에 ActiveX 에서 자신을 포함한 웹브라우저를 찾는 방법을 이용하니 제대로 찾아지더군요..
다음은 코드입니다... 필요하신 분들 참고하시기 바랍니다.
// Get IOleContainer interface pointer
IOleContainer* pContainer;
hr = spDoc->QueryInterface(IID_IOleContainer, (void**)&pContainer);
if(FAILED(hr) || pContainer == NULL)
return FALSE;
IServiceProvider *pISP = NULL;
// Get IServiceProvider interface pointer.
hr = pContainer->QueryInterface(IID_IServiceProvider, (void **)&pISP);
pContainer ->Release();
if(FAILED(hr) || pISP == NULL)
return FALSE;
// Get IWebBrowser2 interface pointer.
hr = pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (void**)&pIExplorer);
pISP->Release();
if(FAILED(hr) || pIExplorer == NULL)
{
pIExplorer = NULL;
return FALSE;
}
'Program Visual C++' 카테고리의 다른 글
Invoke 오버라이드 (0) | 2007.03.29 |
---|---|
IWebBrowser2* CClockCtrl::GetIWebPointer() // 브라우저 포인터 얻기 (0) | 2007.03.29 |
Screen Saver를 동작 못하게 함. (0) | 2007.03.22 |
Visual C++ Release 디버깅2 (0) | 2007.02.28 |
Visual C++ Release버전 디버깅 (0) | 2007.02.28 |