我在程序中需要处理NewWindow3事件,
NewWindow3(IDispatch** ppDisp,VARIANT_BOOL* Cancel,unsigned long dwFlags,BSTR bstrUrlContext,BSTR bstrUrl)第一个参数要传入新的浏览器指针,才能完成导航。 如果不传入,IE就会默认导航打开。我现在的问题是,我想在新进程创建一个IWebbrowser2的对象,并用这个完成上述NewWindow3新的URL的导航,、
求支招。感激涕零。Internet Explorer跨进程

解决方案 »

  1.   

    问题描述得根本不清楚,什么是新进程调用???你的意思难道是说你有一个exe程序A,A程序中有一个方法
    NewWindow3(IDispatch** ppDisp,VARIANT_BOOL* Cancel,unsigned long dwFlags,BSTR bstrUrlContext,BSTR bstrUrl);然后还有一个exe程序B,想在B中得到IWebbrowser2,然后传给A程序,去调用A程序中的方法么???这样做的话,明显是不行的。因为每个进程所分配的空间都是独立的。B无法去访问A的内存空间。如果你非要这样做的话,你可以把B做成一个Dll,然后通过远程注入的方式。将这个Dll注入到A中去。然后在B.dll中去调用A程序的那个方法。怎么注入B.dll到A中去呢,你可以写一个C程序。这个C程序用到远程注入技术,将b.dll注入到A中去。
      

  2.   

    把ppDisp指定到新的IWebbrowser2对象指定中就行了例如
    *ppDisp = IWebbrowser2对象指针