c#里,WebBrowser实现不加载图片等控制

这个点子来自Jiang Sheng蒋大拿:http://stackoverflow.com/questions/2048424/disable-image-loading-from-webbrowser-control-before-the-documentcompleted-event

参考:https://code.google.com/archive/p/csexwb2/这个项目里的cEXWB.cs文件,通过实现 DISPID_AMBIENT_DLCONTROL ambient property属性来做到,摘录如下。暂作记录,尚未验证。

        private DOCDOWNLOADCTLFLAG m_DLCtlFlags = DOCDOWNLOADCTLFLAG.DLIMAGES |
            DOCDOWNLOADCTLFLAG.BGSOUNDS | DOCDOWNLOADCTLFLAG.VIDEOS;

...........
            //Create a new WB, throws exception if fails
            Type webbrowsertype = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_WebBrowser, true);
            //Using Activator inplace of CoCreateInstance, returns IUnknown
            m_WBUnknown = System.Activator.CreateInstance(webbrowsertype);

................


            //Get the IWebBrowser2
            m_WBWebBrowser2 = (IWebBrowser2)m_WBUnknown;

.............

                    //Signal change of DL property
                    //so MSHTML call our Invoke method through Dispatch
                    //Otherwise refreshing the page will have no effect
                    //MSHTML does not know of new flags set by us
                    //QI for IOleControl
                    IOleControl pOC = (IOleControl)m_WBUnknown;
                    pOC.OnAmbientPropertyChange(HTMLDispIDs.DISPID_AMBIENT_DLCONTROL);

...........

        /// <summary>
        /// We don't have access to IDispatch::Invoke
        /// Fired when IOleControl::OnAmbientPropertyChange is called
        /// from WBDOCDOWNLOADCTLFLAG property in response to DLCtl flag changing
        /// </summary>
        /// <returns></returns>
        [DispId(HTMLDispIDs.DISPID_AMBIENT_DLCONTROL)]
        public int Idispatch_AmbiantDlControl_Invoke_Handler()
        {
            return (int)m_DLCtlFlags;
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值