var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2010年04月13日

    MSIE网页完整截图(2)

    分类:

    这是文MSIE网页完整截图的续文。

     

    snapsIE是一款对MSIE截图的ActiveX开源软件,其CoSnapsie.cppMSIE8之前的Quirks modestrict mode进行判断:

    CComPtr<IHTMLDocument2>    spFramedDocument;

     

    spFramedDocument5 = spFramedDocument;

    if (spFramedDocument5 == NULL)

         return E_FAIL;

     

    CComBSTR compatMode;

    spFramedDocument5->get_compatMode(&compatMode);

     

    if (compatMode == L"BackCompat") {

         hr = spFramedDocument->get_parentWindow(&spScrollableWindow);

         if (FAILED(hr))

             return E_FAIL;

     

         hr = spFramedDocument->get_body(&spFramedElement);

    }

    else {

         spFrameBase = spFrame;

         if (spFrameBase == NULL)

             return E_FAIL;

     

         hr = spFrameBase->get_contentWindow(&spScrollableWindow);

         if (FAILED(hr))

             return E_FAIL;

     

         spFramedDocument3 = spFramedDocument;

         if (spFramedDocument3 == NULL)

             return E_FAIL;

     

         hr = spFramedDocument3->get_documentElement(&spFramedElement);

    }

     

    今天才知道,大名鼎鼎的接口IViewObject/IViewObject2来自文MSHTML Hosting – Odds & Ends,其作者Mark Finkle虽然开发Mozilla但其MSHTML Hosting系列文章对MSIE的开发人员也有指导意义。

    分享到: