C#中如何响应Com组件的Event?

时间:2022-08-31 00:11:12
我在.NET compact framework 1.0下编程,需要响应Com组件的Event。我利用windows自带的IWebBrowser2,以实现Web浏览功能,同时需要响应DWebBrowserEvents2(如何响应??555,我不会)的BeforeNavigate2事件。
我在EVC和VC6下已经测试没问题~~
可是如何在C#中使用呢?
我的关键疑惑在于这段代码在C#里咋写?
BEGIN_DISPATCH_MAP(CIEComCtrlSink, CCmdTarget)
DISP_FUNCTION_ID(CIEComCtrlSink, "OnQuit",DISPID_ONQUIT,OnQuit,VT_EMPTY, VTS_NONE)
DISP_FUNCTION_ID(CIEComCtrlSink, "BeforeNavigate2",DISPID_BEFORENAVIGATE2,BeforeNavigate2,
 VT_EMPTY, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
DISP_FUNCTION_ID(CIEComCtrlSink, "DocumentComplete",DISPID_DOCUMENTCOMPLETE,DocumentComplete,
 VT_EMPTY, VTS_DISPATCH VTS_PVARIANT)  
DISP_FUNCTION_ID(CIEComCtrlSink, "DownloadBegin",DISPID_DOWNLOADBEGIN,DownloadBegin,VT_EMPTY, VTS_NONE)
DISP_FUNCTION_ID(CIEComCtrlSink, "DownloadEnd",DISPID_DOWNLOADCOMPLETE,DownloadEnd,VT_EMPTY, VTS_NONE)
DISP_FUNCTION_ID(CIEComCtrlSink, "OnNewWindow2",DISPID_NEWWINDOW,OnNewWindow2,VT_EMPTY, VTS_DISPATCH VTS_PVARIANT)
END_DISPATCH_MAP()
就是如何把一个事件的响应映射到一个自定义函数。

还望大侠们不吝赐教,小弟在此感激不尽。不知为啥只能最多给40分。。。

5 个解决方案

#1


BUG: The BeforeNavigate2 Event of WebBrowser Control Does Not Fire If Hosted in a Visual C# .NET Application
http://support.microsoft.com/kb/325079/EN-US/

http://support.microsoft.com/?kbid=327135

#2


谢谢您,我去看~~

PS.您怎么是两颗钻石?而不是三角或五角星?我第一次看到~羡慕ing

#3


还有些问题,我在C#里想用AxWebBrowser,但是compact framework下我不会用啊。就是Wince模拟器下,怎么使用AxWebBrowser,我不知道,我看了一种在Pocket PC上的使用Web brower的方法,http://www.developer.com/net/cplus/print.php/10919_3329671_2
但是那是基于一个htmlview.dll的,在wince下没有那东西~~

于是查资料,说在VC下,可以使用IWebBrowser2实现浏览,DWebBrowserEvents2实现响应事件~~

当然,要是在compact framework下能教会我使用AxWebBrowser更好啦~~

我在线等着哈~谢谢好心人们

#4


:)

#5


帮帮忙吧,555

#1


BUG: The BeforeNavigate2 Event of WebBrowser Control Does Not Fire If Hosted in a Visual C# .NET Application
http://support.microsoft.com/kb/325079/EN-US/

http://support.microsoft.com/?kbid=327135

#2


谢谢您,我去看~~

PS.您怎么是两颗钻石?而不是三角或五角星?我第一次看到~羡慕ing

#3


还有些问题,我在C#里想用AxWebBrowser,但是compact framework下我不会用啊。就是Wince模拟器下,怎么使用AxWebBrowser,我不知道,我看了一种在Pocket PC上的使用Web brower的方法,http://www.developer.com/net/cplus/print.php/10919_3329671_2
但是那是基于一个htmlview.dll的,在wince下没有那东西~~

于是查资料,说在VC下,可以使用IWebBrowser2实现浏览,DWebBrowserEvents2实现响应事件~~

当然,要是在compact framework下能教会我使用AxWebBrowser更好啦~~

我在线等着哈~谢谢好心人们

#4


:)

#5


帮帮忙吧,555