WebbrowserEx模仿IE实例源码
Private WithEvents mobjWebDoc As MSHTML.HTMLDocument
Private WithEvents MouseEvent As CMouseHook
Private WithEvents KeyboardEvent As CKeyboardHook
Private WithEvents frmTopParent As VB.Form
Private m_Documents As Collection 'HTML Documents collection
Private m_Frames As Collection 'HTML Frames collection
'-------------------------------------------------------------------------------
' Webbrowser naviagtion events
'-------------------------------------------------------------------------------
'
Event IntializeBeforeGoHome(Cancel As Boolean)
Event StatusTextChange(ByVal Text As String)
Event TitleChange(ByVal Text As String)
Event NewDocumentStart(ByVal WebDoc As HTMLDocument, ByVal URL As String, ByVal IsTargetedToFrame As Boolean, ByVal TargetFrameName As String, Cancel As Boolean)
Event NewDocumentComplete(ByVal WebDoc As HTMLDocument, ByVal URL As String, ByVal IsTargetedToFrame As Boolean, ByVal TargetFrameName As String)
Event BeforeNavigate2(ByVal WebDoc As HTMLDocument, ByVal URL As String, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Event NavigateComplete2(ByVal WebDoc As HTMLDocument, ByVal URL As String)
Event DocumentComplete(ByVal WebDoc As HTMLDocument, ByVal URL As String)
Event BeforeNewWindow2(ByVal URL As String, NewBrowser As Object, Cancel As Boolean)
'-------------------------------------------------------------------------------
' User control-wide mouse events
'-------------------------------------------------------------------------------
'
Event UserControlMouseUp(ByVal Control As Object, ByVal HWnd As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, Cancel As Boolean)
Event UserControlMouseMove(ByVal Control As Object, ByVal HWnd As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, Cancel As Boolean)
Event UserControlMouseDown(ByVal Control As Object, ByVal HWnd As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, Cancel As Boolean)
'-------------------------------------------------------------------------------
' WebBrowser mouse events
'-------------------------------------------------------------------------------
'
Event WebBrowserDblClick(Cancel As Boolean)
Event WebBrowserMouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single, Cancel As Boolean)
Event WebBrowserMouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single, Cancel As Boolean)
Event WebBrowserMouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single, Cancel As Boolean)
Event WebBrowserMouseDownContextMenu(ByVal IsMouseOnLink As Boolean, ByVal URL As String, ByVal SelText As String, Cancel As Boolean)
Event WebBrowserMouseUpContextMenu(ByVal IsMouseOnLink As Boolean, ByVal URL As String, ByVal SelText As String, Cancel As Boolean)
'-------------------------------------------------------------------------------
' WebBrowser keyboard events
'-------------------------------------------------------------------------------
'
Event WebBrowserKeyDown(KeyCode As Integer, Shift As Integer)
Event WebBrowserKeyUp(KeyCode As Integer, Shift As Integer)
'-------------------------------------------------------------------------------
' Go button keyboard events
'-------------------------------------------------------------------------------
'
Event GoButtonKeyDown(KeyCode As Integer, Shift As Integer)
Event GoButtonKeyUp(KeyCode As Integer, Shift As Integer)
'-------------------------------------------------------------------------------
' Address bar keyboard events (combo box)
'-------------------------------------------------------------------------------
'
Event AddressBarContextMenu(Cancel As Boolean)
Event AddressBarKeyDown(KeyCode As Integer, Shift As Integer)
Event AddressBarKeyUp(KeyCode As Integer, Shift As Integer)
'-------------------------------------------------------------------------------
' Statusbar keyboard events
'-------------------------------------------------------------------------------
'
Event StatusBarKeyDown(KeyCode As Integer, Shift As Integer)
Event StatusBarKeyUp(KeyCode As Integer, Shift As Integer)
'-------------------------------------------------------------------------------
' Statusbar mouse events
'-------------------------------------------------------------------------------
'
Event StatusBarPanelClick(Panel As MSComctlLib.Panel)
Event StatusBarPanelDblClick(Panel As MSComctlLib.Panel)
Event StatusBarMouseMove(Panel As MSComctlLib.Panel, Button As Integer, Shift As Integer, X As Single, Y As Single)
Event StatusBarMouseDown(Panel As MSComctlLib.Panel, Button As Integer, Shift As Integer, X As Single, Y As Single)
Event StatusBarMouseUp(Panel As MSComctlLib.Panel, Button As Integer, Shift As Integer, X As Single, Y As Single)
Private mstrStatusText As String 'Webrrowser status text
Private mlngWBHwnd As Long 'Webbrowser handle
Private mHwndComboEdit As Long 'Combo edit box handle
Private mobjTopParent As VB.Form 'Reference to Top parent form
Private mbRunMode As Boolean 'Run/Develope mode detection variable
Private newX As Single 'Variables that contained the converted x, y coordinates
Private newY As Single
Private mhwndTopParent As Long 'Top parent form handle
Private mstrClickedLinkURL As String 'Click-on url
Private mstrNavigate2URL As String 'Navigation start url
Private mstrNavigatedURL As String 'Navigated url
Private mstrTargetFrameName As String 'Naviation target frame
Const m_def_PopupWindowAllowed = True
Const m_def_OpenHomePageAtStart = True
Const m_def_AddressBarVisible = True
Const m_def_StatusBarVisible = True
Const m_def_MouseEventEnabled = True
Const m_def_KeyboardEventEnabled = True
Private m_AddressBarVisible As Boolean
Private m_PopupWindowAllowed As Boolean
Private m_OpenHomePageAtStart As Boolean
Private m_StatusBarVisible As Boolean
Private m_MouseEventEnabled As Boolean
Private m_KeyboardEventEnabled As Boolean
'-------------------------------------------------------------------------------
' TopParent
'-------------------------------------------------------------------------------
' Get the top parent form of the user control
Public Property Get TopParent() As Object
On Error Resume Next
If mobjTopParent Is Nothing Then
Dim objParent As Object
Set objParent = UserControl.Parent
Do While Not TypeOf objParent Is VB.Form
Set objParent = objParent.Parent
Loop
Set mobjTopParent = objParent
Set objParent = Nothing
End If
Set TopParent = mobjTopParent
End Property