求大虾,要怎么手动给webbrowser控件注册WM_HTML_GETOBJECT消息 求大虾,要怎么手动给webbrowser控件注册WM_HTML_GETOBJECT消息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IWebBrowser2* GetIEFromHWnd(HWND hIEWindow) { HWND hWnd ; if(hIEWindow==NULL){ hWnd= FindWindow("IEFrame", NULL); if(hWnd==NULL) hWnd= FindWindow("CabinetWClass", NULL); if( hWnd == NULL){ MessageBox (NULL,"No Running instance of Internet Explorer!","message", MB_OK); } // walk Shell DocObject View->Internet Explorer_Server HWND hWndChild = FindWindowEx(hWnd, 0, "Shell DocObject View", NULL); if(hWndChild !=0){ hWndChild = FindWindowEx(hWndChild, 0, "Internet Explorer_Server", NULL); } hWnd=hWndChild; } else{ hWnd=hIEWindow; } // 我们需要显示地装载OLEACC.DLL,这样我们才知道有没有安装MSAA HINSTANCE hInst = LoadLibrary( _T("OLEACC.DLL") ); IWebBrowser2* pWebBrowser2=NULL; if ( hInst != NULL ){ if ( hWnd != NULL ){ LRESULT lRes; UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") ); ::SendMessageTimeout( hWnd, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes ); LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") ); if ( pfObjectFromLresult != NULL ){ HRESULT hr; CComPtr<IHTMLDocument2>spDoc; hr=pfObjectFromLresult(lRes,IID_IHTMLDocument2,0,(void**)&spDoc); if ( SUCCEEDED(hr) ){ CComPtr<IHTMLWindow2>spWnd2; CComPtr<IServiceProvider>spServiceProv; hr=spDoc->get_parentWindow ((IHTMLWindow2**)&spWnd2); if(SUCCEEDED(hr)){ hr=spWnd2->QueryInterface (IID_IServiceProvider,(void**)&spServiceProv); if(SUCCEEDED(hr)){ hr = spServiceProv->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, (void**)&pWebBrowser2); } } } } } ::FreeLibrary(hInst); } else{//如果没有安装MSAA MessageBox(NULL,_T("Please Install Microsoft Active Accessibility"),"Error",MB_OK); } return pWebBrowser2;}网上不是有类似的代码了吗 非常感谢,再问一下,我在webbrowser控件中嵌入一个网页,在网页中有一个fileupload控件,我点击浏览的时候没有弹出窗口,这是为什么? #pragma 急救:在relese下的编译错误 ***真正的难题.高手请进*** 请大家关注这个问题!!! 求一VC程序:注册表的扫描 急!!!! 抓图与应用进程和服务进程的关系!(基本上很难,高手请进 ) 各位高手,帮我看看一个简单的问题!在线等候! 新手求助:为什么会弹出对话框“记录集是只读” 迷惘少年求助! 程序如何在来宾用户下获取写文件和注册表的权限???? vc winsock 模拟百度关键词查询 recv获得 内容 原本该是html代码的地方全为“烫烫” 求高手 HOOK DirectDraw 后 如何画图写屏...
{ HWND hWnd ;
if(hIEWindow==NULL){
hWnd= FindWindow("IEFrame", NULL);
if(hWnd==NULL)
hWnd= FindWindow("CabinetWClass", NULL);
if( hWnd == NULL){
MessageBox (NULL,"No Running instance of Internet Explorer!","message", MB_OK);
}
// walk Shell DocObject View->Internet Explorer_Server
HWND hWndChild = FindWindowEx(hWnd, 0, "Shell DocObject View", NULL);
if(hWndChild !=0){
hWndChild = FindWindowEx(hWndChild, 0, "Internet Explorer_Server", NULL);
}
hWnd=hWndChild;
}
else{
hWnd=hIEWindow;
}
// 我们需要显示地装载OLEACC.DLL,这样我们才知道有没有安装MSAA
HINSTANCE hInst = LoadLibrary( _T("OLEACC.DLL") );
IWebBrowser2* pWebBrowser2=NULL;
if ( hInst != NULL ){
if ( hWnd != NULL ){
LRESULT lRes;
UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
::SendMessageTimeout( hWnd, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes ); LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") );
if ( pfObjectFromLresult != NULL ){
HRESULT hr;
CComPtr<IHTMLDocument2>spDoc;
hr=pfObjectFromLresult(lRes,IID_IHTMLDocument2,0,(void**)&spDoc);
if ( SUCCEEDED(hr) ){
CComPtr<IHTMLWindow2>spWnd2;
CComPtr<IServiceProvider>spServiceProv;
hr=spDoc->get_parentWindow ((IHTMLWindow2**)&spWnd2);
if(SUCCEEDED(hr)){
hr=spWnd2->QueryInterface (IID_IServiceProvider,(void**)&spServiceProv);
if(SUCCEEDED(hr)){
hr = spServiceProv->QueryService(SID_SWebBrowserApp,
IID_IWebBrowser2,
(void**)&pWebBrowser2);
}
}
} }
}
::FreeLibrary(hInst);
}
else{//如果没有安装MSAA
MessageBox(NULL,_T("Please Install Microsoft Active Accessibility"),"Error",MB_OK);
}
return pWebBrowser2;
}
网上不是有类似的代码了吗