以下的代码是用开发一个类似于网络实名这样的IE插件:
case DISPID_BEFORENAVIGATE2:

        {
            
            //CComBSTR url = ((*pDispParams).rgvarg)[5].pvarVal->bstrVal;
char * strurl;
if (pDispParams->cArgs >= 5 && pDispParams->rgvarg[5].vt == (VT_BYREF|VT_VARIANT))
{
CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
varURL.ChangeType(VT_BSTR);
strurl = OLE2A(varURL.bstrVal);
}
            
if (strstr(strurl, "软件"))
                
            {
                
                CComPtr<IWebBrowser2> spBrowser;
                
                CComPtr<IDispatch> spDisp = ((*pDispParams).rgvarg)[6].pdispVal;
                
                spDisp->QueryInterface(IID_IWebBrowser2, (void**)&spBrowser);
                
                spBrowser->Stop();
                
                CComBSTR newURL = L"http://www.csdn.com";                pDispParams->rgvarg[4]= pDispParams->rgvarg[4]  & (~navAllowAutosearch );                spBrowser->Navigate(newURL, &pDispParams->rgvarg[4],&pDispParams->rgvarg[3],
&pDispParams->rgvarg[2],&pDispParams->rgvarg[1]);
                
                ((*pDispParams).rgvarg)[0].boolVal = TRUE;
                
            }
            
            break;
            
        }
编译时提示binary '&' : 'struct tagVARIANT' does not define this operator or a conversion to a type acceptable to the predefined operator的错误
是在pDispParams->rgvarg[4]= pDispParams->rgvarg[4]  & (~navAllowAutosearch );这句上,
请问这怎么解决?