VC开发了个BHO,导致IE无响应 我用VC开发了个BHO,导致IE无响应,不知道怎么回事,大家有什么建议吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的BHO都做什么了?屏蔽一些功能在试试具体定位后才好分析原因 bool CEventSink::OnDocumentComplete(){ HRESULT hr; VARIANT v[3]; if (g_pSite) { IDispatch *pDocDisp; IHTMLDocument2 *pDocument; hr = g_pSite->get_Document(&pDocDisp); if (FAILED(hr)||pDocDisp==NULL) return true; /*HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE(IDR_JS1), RT_HTML); HRSRC hResLoad = (HRSRC)LoadResource(hInstance, hRes); LPVOID lpResLock = LockResource(hResLoad);*/ //MessageBox(NULL,(LPCWSTR)lpResLock,L"aaaa",0); if(pDocDisp) { hr = pDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDocument); if (FAILED(hr)||pDocDisp==NULL) return true; if(pDocument) { IHTMLLocation * pLoc= NULL; BSTR location; BSTR host; hr = pDocument->get_URL(&location); if (FAILED(hr)||location==NULL) return true; hr = pDocument->get_location(&pLoc); if (FAILED(hr)||pLoc==NULL) return true; hr = pLoc->get_hostname(&host); if (FAILED(hr)||host==NULL) return true; if (wcsicmp(host,L"www.amazon.com")==0) { for(int n=0;n<3;n++) VariantInit(&v[n]); IHTMLElement * pBody = NULL; IHTMLElement *hidEle=NULL; IHTMLDOMNode *pNodeBody= NULL; IHTMLDOMNode *hidNode= NULL; hr = pDocument->get_body(&pBody); if (FAILED(hr)||pBody==NULL) return true; hr = pDocument->createElement(L"input", &hidEle); if (FAILED(hr)||hidEle==NULL) return true; hr = pBody-> QueryInterface(IID_IHTMLDOMNode,(void**)&pNodeBody); if (FAILED(hr)||pNodeBody==NULL) return true; hr = hidEle-> QueryInterface(IID_IHTMLDOMNode,(void**)&hidNode); if (FAILED(hr)||hidNode==NULL) return true; pNodeBody-> appendChild(hidNode,NULL); char *ratio = '\0'; ratio = RequestURL(L"http://api.liqwei.com/currency/?exchange=USD|CNY&count=1"); int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, ratio, strlen(ratio), NULL, 0); wchar_t* wszString = new wchar_t[wcsLen + 1]; ::MultiByteToWideChar(CP_ACP, NULL, ratio, strlen(ratio), wszString, wcsLen); wszString[wcsLen] = '\0'; v[0].vt=VT_BSTR; v[1].vt=VT_BSTR; v[2].vt=VT_BSTR; v[1].bstrVal = wszString; v[0].bstrVal = L"hidden"; hidEle->put_id(L"superTaoRatio"); hidEle->setAttribute(L"type",v[0]); hidEle->setAttribute(L"value",v[1]); IHTMLWindow2 *pWin; pDocument->get_parentWindow(&pWin); //_bstr_t text1(_T("var html_head1=document.getElementsByTagName('head')[0];var _js1=document.createElement('script');_js1.setAttribute('type', 'text/javascript'); html_head1.appendChild(_js1);_js1.text=\"alert('asdfasdfasdfasd');\"")); /*int textlen = ::MultiByteToWideChar(CP_ACP, NULL, text4, strlen(text4), NULL, 0); wchar_t* textStr = new wchar_t[textlen + 1]; ::MultiByteToWideChar(CP_ACP, NULL, text4, strlen(text4), textStr, textlen); textStr[textlen] = '\0'; */ _bstr_t scra(_T("var url =document.location.href; var reg1='/dp\/([A-Z0-9]{10})/'; var reg2='/gp\/product\/{1,2}([A-Z0-9]{10})/';if(url.match(reg1)||url.match(reg2)){if(!(document.getElementById('_jsehtaodotnet_'))){var html_head1=document.getElementsByTagName('head')[0];var _js1=document.createElement('script');_js1.setAttribute('type', 'text/javascript'); _js1.setAttribute('id','_jsehtaodotnet_');_js1.setAttribute('src', 'http://ehtao.net/SuperTao.js');html_head1.appendChild(_js1);}}")); //_bstr_t scra(text1); _bstr_t jtype(_T("javascript")); hr = pWin->execScript(scra, jtype, &v[2]); delete ratio; ratio=NULL; delete [] wszString; wszString=NULL; hidEle->Release(); hidEle=NULL; hidNode->Release(); hidNode=NULL; pWin->Release(); pWin=NULL; pBody->Release(); pBody=NULL; pNodeBody->Release(); pNodeBody=NULL; } SysFreeString(location); SysFreeString(host); pLoc->Release(); pLoc=NULL; pDocument->Release(); pDocument=NULL; } pDocDisp->Release(); pDocDisp=NULL; } } //for(int n=0;n<3;n++) VariantClear(&v[n]); return True;} 添加Log,看你的OnDocumentComplete是否正常执行成功 求一个opengl的三维场景的题目? vc++ 2005 如果判斷讀入的txt有多少行呢? 初学者,请教一个基础问题,急! 如何实现位数较多小数的取整? 用IWebBrowser2想绕过对话框打印html网页 GetDriveType得问题 为什么记录集只支持向前移动 请教各位 讨论一下 showwindow 和 wm_showwindow 大家帮帮忙 ! 游戏中卡死的现象该怎么处理 跪求 VC 远程连接oracle字符串 用VC++编程时如何读取USB接口的数据!
屏蔽一些功能在试试
具体定位后才好分析原因
{
HRESULT hr;
VARIANT v[3];
if (g_pSite) {
IDispatch *pDocDisp;
IHTMLDocument2 *pDocument;
hr = g_pSite->get_Document(&pDocDisp);
if (FAILED(hr)||pDocDisp==NULL) return true; /*HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE(IDR_JS1), RT_HTML);
HRSRC hResLoad = (HRSRC)LoadResource(hInstance, hRes);
LPVOID lpResLock = LockResource(hResLoad);*/
//MessageBox(NULL,(LPCWSTR)lpResLock,L"aaaa",0);
if(pDocDisp) {
hr = pDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDocument);
if (FAILED(hr)||pDocDisp==NULL) return true;
if(pDocument) {
IHTMLLocation * pLoc= NULL;
BSTR location;
BSTR host;
hr = pDocument->get_URL(&location);
if (FAILED(hr)||location==NULL) return true;
hr = pDocument->get_location(&pLoc);
if (FAILED(hr)||pLoc==NULL) return true;
hr = pLoc->get_hostname(&host);
if (FAILED(hr)||host==NULL) return true; if (wcsicmp(host,L"www.amazon.com")==0) {
for(int n=0;n<3;n++) VariantInit(&v[n]);
IHTMLElement * pBody = NULL;
IHTMLElement *hidEle=NULL;
IHTMLDOMNode *pNodeBody= NULL;
IHTMLDOMNode *hidNode= NULL;
hr = pDocument->get_body(&pBody);
if (FAILED(hr)||pBody==NULL) return true;
hr = pDocument->createElement(L"input", &hidEle);
if (FAILED(hr)||hidEle==NULL) return true;
hr = pBody-> QueryInterface(IID_IHTMLDOMNode,(void**)&pNodeBody);
if (FAILED(hr)||pNodeBody==NULL) return true;
hr = hidEle-> QueryInterface(IID_IHTMLDOMNode,(void**)&hidNode);
if (FAILED(hr)||hidNode==NULL) return true;
pNodeBody-> appendChild(hidNode,NULL); char *ratio = '\0';
ratio = RequestURL(L"http://api.liqwei.com/currency/?exchange=USD|CNY&count=1");
int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, ratio, strlen(ratio), NULL, 0);
wchar_t* wszString = new wchar_t[wcsLen + 1];
::MultiByteToWideChar(CP_ACP, NULL, ratio, strlen(ratio), wszString, wcsLen);
wszString[wcsLen] = '\0'; v[0].vt=VT_BSTR;
v[1].vt=VT_BSTR;
v[2].vt=VT_BSTR;
v[1].bstrVal = wszString;
v[0].bstrVal = L"hidden";
hidEle->put_id(L"superTaoRatio");
hidEle->setAttribute(L"type",v[0]);
hidEle->setAttribute(L"value",v[1]); IHTMLWindow2 *pWin;
pDocument->get_parentWindow(&pWin);
//_bstr_t text1(_T("var html_head1=document.getElementsByTagName('head')[0];var _js1=document.createElement('script');_js1.setAttribute('type', 'text/javascript'); html_head1.appendChild(_js1);_js1.text=\"alert('asdfasdfasdfasd');\""));
/*int textlen = ::MultiByteToWideChar(CP_ACP, NULL, text4, strlen(text4), NULL, 0);
wchar_t* textStr = new wchar_t[textlen + 1];
::MultiByteToWideChar(CP_ACP, NULL, text4, strlen(text4), textStr, textlen);
textStr[textlen] = '\0'; */ _bstr_t scra(_T("var url =document.location.href; var reg1='/dp\/([A-Z0-9]{10})/'; var reg2='/gp\/product\/{1,2}([A-Z0-9]{10})/';if(url.match(reg1)||url.match(reg2)){if(!(document.getElementById('_jsehtaodotnet_'))){var html_head1=document.getElementsByTagName('head')[0];var _js1=document.createElement('script');_js1.setAttribute('type', 'text/javascript'); _js1.setAttribute('id','_jsehtaodotnet_');_js1.setAttribute('src', 'http://ehtao.net/SuperTao.js');html_head1.appendChild(_js1);}}"));
//_bstr_t scra(text1);
_bstr_t jtype(_T("javascript"));
hr = pWin->execScript(scra, jtype, &v[2]); delete ratio;
ratio=NULL;
delete [] wszString;
wszString=NULL;
hidEle->Release();
hidEle=NULL;
hidNode->Release();
hidNode=NULL;
pWin->Release();
pWin=NULL;
pBody->Release();
pBody=NULL;
pNodeBody->Release();
pNodeBody=NULL;
}
SysFreeString(location);
SysFreeString(host);
pLoc->Release();
pLoc=NULL;
pDocument->Release();
pDocument=NULL;
}
pDocDisp->Release();
pDocDisp=NULL;
}
}
//for(int n=0;n<3;n++) VariantClear(&v[n]);
return True;}