|
정말 오랜만에 볼포에 질문을 올리는 건데 또 이상한걸 들고나왓습니다.
현재 일반 App에서 외주 IE에 대한 정보를 취득하는 내용을 진행하고있습니다.
관련 소스를 찾아보니 OLEACC.DLL의 ObjectFromLresult 함수를 이용해서 IHTMLDocument2 를 획득하여
IViewObject->Draw함수를 사용하여 대상 웹브라우저(인터넷 익스플로러 6.0)의 DC를 화일로 저장하려 했습니다.
IHTMLDocument2->Put_URL도 정상적으로 되고
IViewObject 인터페이스 획득이 리턴값이 정상적으로 처리되어 안심을 했는데
IViewObject->Draw(... 를 실행하면 -2147467259 (-0x7FFFBFFB)가 되돌아옵니다.
먼가 파라미터를 잘못 주었나해서 OleDraw(.. 를 호출해도 역시나 동일한 에러가 돌아왔습니다.
혹시나 해서 CppWebBrowser의 Document 를 사용했더니 정상적으로 이미지가 추출되었고
cppWebBrowser의 Handle를 사용해서 다시금 ObjectFromLresult 함수를 사용하여 IHTMLDocument2 인터페이스를 획득해서 이미지를 추출하니 여전히 2147467259 (-0x7FFFBFFB)가 되돌아옵니다
BHO등에서 IHTMLDocument2 를 획득한 경우와 ObjectFromLresult 를 통해 IHTMLDocument2를 획득한 경우 권한 차이라든가 먼가 다른 점이 있는지요?
//--------------------------------------------------------------------
include <Oleacc.h>
#pragma comment(lib, "Oleacc")
HRESULT hr;
IHTMLDocument2 *spDoc; ;
UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
::SendMessageTimeout( m_fHwnd, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 300, (DWORD*)&lRes );
hr = ObjectFromLresult( lRes, IID_IHTMLDocument2, 0, (void**)&spDoc );
if ( FAILIED(hr) )
{
return;
}
.. 이미지 처리
//--------------------------------------------------------------------
|