Public Class ExtendedWebBrowser
Inherits Windows.Forms.WebBrowser
Private cookie As AxHost.ConnectionPointCookie
Private wevents As WebBrowserExtendedEvents
Private mEvents As Windows.Forms.MouseEventArgs
'This method will be called to give you a chance to create your own
' event sink
Protected Overrides Sub CreateSink()
'MAKE SURE TO CALL THE BASE or the normal events won't fire
MyBase.CreateSink()
wevents = New WebBrowserExtendedEvents(Me)
cookie = New AxHost.ConnectionPointCookie(Me.ActiveXInstance, _
wevents, GetType(DWebBrowserEvents2))
mEvents = New Windows.Forms.MouseEventArgs(Me.MouseButtons, 1, _
Me.MousePosition.X, Me.MousePosition.Y, 0)
End Sub
Protected Overrides Sub DetachSink()
If Not cookie Is Nothing Then
cookie.Disconnect()
cookie = Nothing
End If
MyBase.DetachSink()
End Sub
'This new event will fire when the page is navigating
Public Delegate Sub WebBrowserNavigatingExtendedEventHandler(ByVal _
sender As Object, ByVal e As WebBrowserNavigatingExtendedEventArgs)
Public Event NavigatingExtended As _
WebBrowserNavigatingExtendedEventHandler
Public Delegate Sub MouseEventHandler(ByVal sender As Object, ByVal e _
As Windows.Forms.MouseEventArgs)
Public Event MouseMove As MouseEventHandler
Public Event MouseDown As MouseEventHandler
Public Event MouseUp As MouseEventHandler
'This event will fire when a new window is about to be opened
Public Delegate Sub WebBrowserNewWindowExtendedEventHandler(ByVal _
sender As Object, ByVal e As WebBrowserNewWindowExtendedEventArgs)
Public Event NewWindowExtended As _
WebBrowserNewWindowExtendedEventHandler
Protected Friend Sub OnNavigatingExtended(ByVal Url As String, ByVal _
Frame As String, ByVal Postdata As Byte(), ByVal Headers As String, _
ByRef Cancel As Boolean)
Dim e As WebBrowserNavigatingExtendedEventArgs = New _
WebBrowserNavigatingExtendedEventArgs(Url, Frame, Postdata, Headers)
RaiseEvent NavigatingExtended(Me, e)
Cancel = e.Cancel
End Sub
'Protected Friend Sub
Protected Friend Sub OnNewWindowExtended(ByVal Url As String, ByRef _
Cancel As Boolean, ByVal Flags As NWMF, ByVal UrlContext As String)
Dim e As WebBrowserNewWindowExtendedEventArgs = New _
WebBrowserNewWindowExtendedEventArgs(Url, UrlContext, Flags)
RaiseEvent NewWindowExtended(Me, e)
Cancel = e.Cancel
End Sub
End Class
'This class will capture events from the WebBrowser
Class WebBrowserExtendedEvents
Inherits System.Runtime.InteropServices.StandardOleMarshalObject
Implements DWebBrowserEvents2
Private m_Browser As ExtendedWebBrowser
Public Sub New(ByVal browser As ExtendedWebBrowser)
m_Browser = browser
End Sub
'Implement whichever events you wish
Public Sub BeforeNavigate2(ByVal pDisp As Object, ByRef URL As String, _
ByRef flags As Object, ByRef targetFrameName As String, ByRef _
postData As Object, ByRef headers As String, ByRef cancel As Boolean) _
Implements DWebBrowserEvents2.BeforeNavigate2
m_Browser.OnNavigatingExtended(URL, targetFrameName, CType( _
postData, Byte()), headers, cancel)
End Sub weiteres folg...xD |