我有个问题困扰我很长时间了,在网上也没有找到,用c#怎样实现webbrowser 的IDispatch接口?我的意图是要分析 DISPID_AMBIENT_DLCONTROL 来禁止DLCTL_DLIMAGES, DLCTL_VIDEOS等图片和视频的下载,这个怎么实现啊?我在网上找了半天也没有找到怎样在C#中实现的方法,哪位高人点拨小弟我一下吧,多谢了!

解决方案 »

  1.   

    没看明白你想干嘛……WebBrowser继承自WebBrowserBaseWebBrowserBase <- Control <-Component
                              <-IBindableComponent
                              <-IComponent
                              <-IDisposable
                              <-IDropTarget
                              <-ISynchronizeInvoke
                              <-IWin32Window没发现你说的 IDispatchIDispatch是COM特有的,WebBrowser不是COM吧?
      

  2.   

    我猜你的意思应该是重写 WebBrowser的IDispatch的Invoke方法参考这个帖子里面的一个回复
    http://topic.csdn.net/t/20020409/23/634905.html
    7 楼qqchen79(知秋一叶)回复于 2002-04-11 22:15:57 得分 0 
    原来是要用late   binding,那就没办法了:p,这可是C#的大弱项。   
      当然,理论上说reflection可以办到,但是...   #@$@#   
        
      不过在.NET的范围内还是可以解决的,VB.NET比C#的优点之一就是late   binding,所以只要用vb.net就好了,不用C++介入,编程也方便许多。   ===============
    或许对你有一点帮助
      

  3.   

    郁闷啊兄弟..还是不成,我在MSDN里找到了一个Marshal.GetIDispatchForObject 这个方法 可以返回一个指针..可是我拿着这个指针干什么用呢?我要从写IDispatch 这个接口的Invoke这个方法啊?获取到Idispatch这个接口指针我怎么转成接口或者说我怎么能从写Idispatch这个接口中的Invoke这个方法呢?拜托!这两天郁闷死了,就想把这个搞出来!