IWebExplorer2 Навигация завершается с ошибкой чтения символов строки
IWebExplorer2::Navigate(..) (or Navigate2)
не может перемещаться по некоторым URL. Например, при навигации по следующему URL: *https://www.facebook.com/dialog/oauth/?api_key=<MyKey>&redirect_uri=<MyUri>&state=NONE* , I am getting the error **Error reading characters of string** in **DISPID_NAVIGATEERROR**
,
......
wchar_t ws[MAX_PATH];
TCharToWide(url,ws,MAX_PATH);
VARIANT v; v.vt=VT_I4; v.lVal=0; //v.lVal=navNoHistory;
ibrowser->Navigate(ws,&v,NULL,NULL,NULL);
......
void TCharToWide(const wchar_t *src,wchar_t *dst,int dst_size_in_wchars){wcscpy(dst,src);}
Пожалуйста, кто-нибудь может сказать мне, что мне не хватает?
Заранее спасибо.
1 ответ
После метода Navigate2 URL-адрес типа является Variant, а для метода Navigate тип URL-адреса - BSTR; Если у вас есть поддержка ATL, вы можете использовать CComVariant
с помощью Navigate2 или CComBSTR
с навигацией;
NavToURL( L"www.google.com", FALSE);
BOOL NavToURL(const wchar_t* url, BOOL isnewtab){
CComVariant vEmpty;
CComVariant vURL(url);
CComVariant flag=isnewtab ? 0x0800 : vEmpty;
ibrowser->Navigate2(&vURL, &flag, &vEmpty, &vEmpty, &vEmpty);
return TRUE;
}