以下的代码是在地址栏上输入中文,然后跳到指定的网址,但每次输入都会打开IE自己的搜索页,那怎么才能让IE不使用它自己的搜索页呢?
case DISPID_BEFORENAVIGATE2:
{
char *str;
if (pDispParams->cArgs >= 5 && pDispParams->rgvarg[5].vt == (VT_BYREF|VT_VARIANT))
{
CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
varURL.ChangeType(VT_BSTR);
//转化要访问的网址为char *型
str = OLE2A(varURL.bstrVal);
} if (strstr(str,"软件")) { CComPtr<IWebBrowser2> spBrowser; CComPtr<IDispatch> spDisp = ((*pDispParams).rgvarg)[6].pdispVal; spDisp->QueryInterface(IID_IWebBrowser2, (void**)&spBrowser); spBrowser->Stop(); CComBSTR newURL = L"http://www.csdn.net";
pDispParams->rgvarg[4].lVal = pDispParams->rgvarg[4].lVal & (~navAllowAutosearch );
spBrowser->Navigate(newURL, &pDispParams->rgvarg[4], NULL, NULL, NULL); ((*pDispParams).rgvarg)[0].boolVal = TRUE; } break;
}
case DISPID_BEFORENAVIGATE2:
{
char *str;
if (pDispParams->cArgs >= 5 && pDispParams->rgvarg[5].vt == (VT_BYREF|VT_VARIANT))
{
CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
varURL.ChangeType(VT_BSTR);
//转化要访问的网址为char *型
str = OLE2A(varURL.bstrVal);
} if (strstr(str,"软件")) { CComPtr<IWebBrowser2> spBrowser; CComPtr<IDispatch> spDisp = ((*pDispParams).rgvarg)[6].pdispVal; spDisp->QueryInterface(IID_IWebBrowser2, (void**)&spBrowser); spBrowser->Stop(); CComBSTR newURL = L"http://www.csdn.net";
pDispParams->rgvarg[4].lVal = pDispParams->rgvarg[4].lVal & (~navAllowAutosearch );
spBrowser->Navigate(newURL, &pDispParams->rgvarg[4], NULL, NULL, NULL); ((*pDispParams).rgvarg)[0].boolVal = TRUE; } break;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货