2

我在我的 c++ 应用程序中托管了 mshtml。我试图在 IHTMLDocument 中查询 IOmNavigator 但什么也没得到。我也尝试对 IHTMLWindow2 做同样的事情,但没有运气。

我正在尝试访问 IOmNavigator 以获取浏览器版本号。任何帮助将不胜感激。

谢谢

4

1 回答 1

2
IHTMLDocument2 *pDoc; IHTMLWindow2 *ihw; IOmNavigator *nvg; BSTR uastr; AnsiString mouni;
if (SUCCEEDED(CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc)))
{
  pDoc->get_parentWindow(&ihw); ihw->get_navigator(&nvg); nvg->get_userAgent(&uastr);
  mouni=AnsiString(uastr).UpperCase(); nvg->Release(); ihw->Release(); pDoc->Release();
  if (mouni.Pos("TRIDENT")>0 && mouni.Pos("MSIE")==0) { lmrg=8; tmrg=8;}
}

上面的代码片段 (BCB5) 显示了如何获取 IHTMLDocument2 接口,然后是 IHTMLWindow2 接口,然后是 IOmNavigator 接口,然后是 useragent 字符串,并相应地设置一些边距(IE11 在呈现页面的方式上与 IE10 和以前的版本不同)。HTH,图形。

于 2014-03-07T17:42:04.950 回答