解决方案 »
- 自绘菜单问题,当菜单有子菜单时,系统会自动给绘制 向右的箭头,谁知道这个怎么处理
- 再次请教关于两次调用PlaySound函数的问题,谢谢!
- 超级新手,请各位高手赐教!!!(关于MFC)
- 如何实现COM接口silent模式
- 要重载CTreeView的OnClick事件要怎么做?
- 在任务管理器中看到程序的"页面错误增量"1000多,"页面错误"几十万!是什么地方导致的问题?????????!!!!!!!!!!!!!
- 请问VC中如何做报表?
- ADO高手帮帮忙!!
- 各位高手GetForegroundWindow和GetActiveWindow有什麽区别呀?
- 我想学VC++,怎么入手好?
- 写串口操作//在WaitForSingleObject添加清空缓冲区purgecom函数对吗???
- C++的线程是如何终止
主要部分过程BOOL NScript::GetHtmlDocFromWnd(HWND hWnd, IHTMLDocument2 **ppHtmlDoc)
{
CComQIPtr<IHTMLDocument> HtmlDoc;
CComQIPtr<IDispatch> HtmlDispath;
CComQIPtr<IHTMLWindow2> HtmlWin2;
LPFNOBJECTFROMLRESULT fnObjectFromLresult;
UINT uMessage;
DWORD_PTR dwRetVal;
HRESULT hr; CoInitialize(NULL);
*ppHtmlDoc = NULL;
fnObjectFromLresult = (LPFNOBJECTFROMLRESULT)NSys::GetDllProcAdders("OLEACC.DLL", "ObjectFromLresult");
if(fnObjectFromLresult == NULL)
return FALSE; uMessage = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
::SendMessageTimeout(hWnd, uMessage, 0L, 0L, SMTO_ABORTIFHUNG, 1000, &dwRetVal);
hr = fnObjectFromLresult((LRESULT)dwRetVal, IID_IHTMLDocument, 0, (void**)&HtmlDoc);
if(FAILED(hr) || HtmlDoc == NULL)
return FALSE; hr = HtmlDoc->get_Script(&HtmlDispath);
if(FAILED(hr) || HtmlDispath == NULL)
return FALSE; HtmlWin2 = HtmlDispath;
if(HtmlWin2 == NULL)
return FALSE;
hr = HtmlWin2->get_document(ppHtmlDoc);
if(FAILED(hr))
return FALSE; return TRUE;
}