_20/20 Column_ by Al Williams Example 1: (a) Private Sub Form_Load() Dim wb As New InternetExplorer wb.Visible = True wb.Navigate "http://www.al-williams.com/awc" End Sub (b) Private Sub Form_Load() WebBrowser1.Navigate "http://www.al-williams.com/awc" End Sub Example 2: Enum BRStatusType brShowStatus = True brHideStatus = False End Enum Example 3 (a) On Error Resume Next Some_Operation If Err.Number <> 0 Then ... Another_Operation If Err.Number<> 0 Then ... . . . End Sub (b) On Error GoTo ErrHandle Some_Operation Another_Operation Exit Sub ErrHandle: ' Put Error code here End Sub Listing One VERSION 5.00 Object = "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.0#0"; "SHDOCVW.DLL" Begin VB.UserControl Browser ClientHeight = 5748 ClientLeft = 0 ClientTop = 0 ClientWidth = 7740 PropertyPages = "browser.ctx":0000 ScaleHeight = 101.388 ScaleMode = 6 'Millimeter ScaleWidth = 136.525 Begin SHDocVwCtl.WebBrowser WebBrowser Height = 4092 Left = 0 TabIndex = 1 Top = 1080 Width = 7452 Object.Height = 341 Object.Width = 621 AutoSize = 0 ViewMode = 1 AutoSizePercentage= 0 AutoArrange = -1 'True NoClientEdge = -1 'True AlignLeft = 0 'False End Begin VB.CommandButton FwdCmd Height = 372 Left = 1800 Style = 1 'Graphical TabIndex = 9 ToolTipText = "Go Forward" Top = 120 Width = 972 End Begin VB.CommandButton BackCmd Height = 372 Left = 840 Style = 1 'Graphical TabIndex = 8 ToolTipText = "Go Back" Top = 120 Width = 972 End Begin VB.CommandButton SearchCmd Height = 372 Left = 6600 Style = 1 'Graphical TabIndex = 7 ToolTipText = "Search" Top = 240 Width = 972 End Begin VB.CommandButton HomeCmd Height = 372 Left = 5400 Style = 1 'Graphical TabIndex = 6 ToolTipText = "Return Home" Top = 240 Width = 972 End Begin VB.CommandButton StopCmd Enabled = 0 'False Height = 372 Left = 4200 Style = 1 'Graphical TabIndex = 5 ToolTipText = "Stop" Top = 240 Width = 972 End Begin VB.CommandButton RefreshCmd Height = 372 Left = 3000 Style = 1 'Graphical TabIndex = 4 ToolTipText = "Refresh" Top = 240 Width = 972 End Begin VB.TextBox Url Height = 288 Left = 0 TabIndex = 2 Top = 840 Width = 7332 End Begin VB.PictureBox Logo AutoSize = -1 'True Height = 816 Left = 0 ScaleHeight = 768 ScaleWidth = 768 TabIndex = 0 Top = 0 Width = 816 End Begin VB.Label Status Caption = "Initializing" Height = 252 Left = 0 TabIndex = 3 Top = 5520 Width = 7452 End End Attribute VB_Name = "Browser" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True Option Explicit 'Event Declarations: Event TitleChange(ByVal Text As String) 'MappingInfo=WebBrowser,WebBrowser,-1,TitleChange Enum BRStatusType brShowStatus = True brHideStatus = False End Enum Private Sub BackCmd_Click() GoBack End Sub Private Sub FwdCmd_Click() GoForward End Sub Private Sub HomeCmd_Click() GoHome End Sub Private Sub RefreshCmd_Click() On Error Resume Next WebBrowser.Refresh If Err.Number <> 0 Then Beep End Sub Private Sub SearchCmd_Click() GoSearch End Sub Private Sub StopCmd_Click() On Error Resume Next WebBrowser.Stop If Err.Number <> 0 Then Beep End Sub Private Sub Url_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then On Error Resume Next WebBrowser.Navigate Url.Text If Err.Number <> 0 Then Beep KeyAscii = 0 End If End Sub Private Sub SetButton(b As CommandButton, n As Integer) b.Picture = LoadResPicture(n, vbResBitmap) b.Height = b.Picture.Height / 100 b.Width = b.Picture.Width / 100 End Sub Private Sub UserControl_Initialize() Logo.Picture = LoadResPicture(20, vbResBitmap) SetButton HomeCmd, 10 SetButton StopCmd, 11 SetButton SearchCmd, 12 SetButton RefreshCmd, 13 SetButton BackCmd, 14 SetButton FwdCmd, 15 Url.Text = "http://www.al-williams.com/awc" WebBrowser.Navigate Url.Text End Sub ' When you resize, lots goes on Private Sub UserControl_Resize() Const offset = 1 ' 1 mm margins ' Set Logo to top left corner Logo.Top = 0 Logo.Left = 0 ' Reposition everything relative to Logo RefreshCmd.Top = offset RefreshCmd.Left = ScaleWidth / 2 StopCmd.Top = offset StopCmd.Left = RefreshCmd.Left + RefreshCmd.Width + offset HomeCmd.Top = offset HomeCmd.Left = StopCmd.Left + StopCmd.Width + offset SearchCmd.Top = offset SearchCmd.Left = HomeCmd.Left + HomeCmd.Width + offset BackCmd.Top = offset BackCmd.Left = Logo.Width + offset FwdCmd.Top = offset FwdCmd.Left = BackCmd.Left + BackCmd.Width + offset Url.Top = Logo.Height + offset Url.Left = 0 Url.Width = ScaleWidth WebBrowser.Left = 0 WebBrowser.Top = Url.Height + Logo.Height + offset WebBrowser.Width = ScaleWidth WebBrowser.Height = ScaleHeight - WebBrowser.Top - Status.Height Status.Left = 0 Status.Top = ScaleHeight - Status.Height Status.Width = ScaleWidth End Sub Private Sub WebBrowser_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean) Select Case Command Case CSC_NAVIGATEFORWARD FwdCmd.Enabled = Enable Case CSC_NAVIGATEBACK BackCmd.Enabled = Enable End Select End Sub Private Sub WebBrowser_DownloadBegin() StopCmd.Enabled = True ' Let user stop End Sub Private Sub WebBrowser_DownloadComplete() ' Reset logo and Disable stop button Logo.Picture = LoadResPicture(20, vbResBitmap) StopCmd.Enabled = False End Sub Private Sub WebBrowser_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long) Static Logonum As Integer ' As progress is made, change logo image Logonum = Logonum + 1 If Logonum = 3 Then Logonum = 0 Logo.Picture = LoadResPicture(20 + Logonum, vbResBitmap) End Sub Private Sub WebBrowser_StatusTextChange(ByVal Text As String) If Text <> "" Then Status.Caption = Text End Sub 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=UserControl,UserControl,-1,BackColor Public Property Get BackColor() As OLE_COLOR Attribute BackColor.VB_Description = "Returns/sets the background color used to display text and graphics in an object." Attribute BackColor.VB_ProcData.VB_Invoke_Property = ";Appearance" Attribute BackColor.VB_UserMemId = -501 BackColor = UserControl.BackColor End Property Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR) UserControl.BackColor() = New_BackColor PropertyChanged "BackColor" End Property 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=UserControl,UserControl,-1,ForeColor Public Property Get ForeColor() As OLE_COLOR Attribute ForeColor.VB_Description = "Returns/sets the foreground color used to display text and graphics in an object." Attribute ForeColor.VB_ProcData.VB_Invoke_Property = ";Appearance" Attribute ForeColor.VB_UserMemId = -513 ForeColor = UserControl.ForeColor End Property Public Property Let ForeColor(ByVal New_ForeColor As OLE_COLOR) UserControl.ForeColor() = New_ForeColor PropertyChanged "ForeColor" End Property 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=UserControl,UserControl,-1,Enabled Public Property Get Enabled() As Boolean Attribute Enabled.VB_Description = "Returns/sets a value that determines whether an object can respond to user-generated events." Attribute Enabled.VB_ProcData.VB_Invoke_Property = ";Behavior" Attribute Enabled.VB_UserMemId = -514 Enabled = UserControl.Enabled End Property Public Property Let Enabled(ByVal New_Enabled As Boolean) UserControl.Enabled() = New_Enabled PropertyChanged "Enabled" End Property 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=UserControl,UserControl,-1,BackStyle Public Property Get BackStyle() As Integer Attribute BackStyle.VB_Description = "Indicates whether a Label or the background of a Shape is transparent or opaque." Attribute BackStyle.VB_ProcData.VB_Invoke_Property = ";Appearance" Attribute BackStyle.VB_UserMemId = -502 BackStyle = UserControl.BackStyle End Property Public Property Let BackStyle(ByVal New_BackStyle As Integer) UserControl.BackStyle() = New_BackStyle PropertyChanged "BackStyle" End Property 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=UserControl,UserControl,-1,BorderStyle Public Property Get BorderStyle() As Integer Attribute BorderStyle.VB_Description = "Returns/sets the border style for an object." Attribute BorderStyle.VB_ProcData.VB_Invoke_Property = ";Appearance" Attribute BorderStyle.VB_UserMemId = -504 BorderStyle = UserControl.BorderStyle End Property 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=UserControl,UserControl,-1,Refresh Public Sub Refresh() Attribute Refresh.VB_Description = "Forces a complete repaint of a object." Attribute Refresh.VB_UserMemId = -550 UserControl.Refresh End Sub 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=WebBrowser,WebBrowser,-1,GoSearch Public Sub GoSearch() Attribute GoSearch.VB_Description = "Go Search Page." On Error Resume Next WebBrowser.GoSearch If Err.Number <> 0 Then Beep End Sub 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=WebBrowser,WebBrowser,-1,GoHome Public Sub GoHome() Attribute GoHome.VB_Description = "Go home/start page." On Error Resume Next WebBrowser.GoHome If Err.Number <> 0 Then Beep End Sub 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=WebBrowser,WebBrowser,-1,GoForward Public Sub GoForward() Attribute GoForward.VB_Description = "Navigates to the next item in the history list." On Error Resume Next WebBrowser.GoForward If Err.Number <> 0 Then Beep End Sub 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=WebBrowser,WebBrowser,-1,GoBack Public Sub GoBack() Attribute GoBack.VB_Description = "Navigates to the previous item in the history list." On Error Resume Next WebBrowser.GoBack If Err.Number <> 0 Then Beep End Sub 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=WebBrowser,WebBrowser,-1,LocationURL Public Property Get LocationURL() As String Attribute LocationURL.VB_Description = "Gets the full URL/path currently viewed." LocationURL = WebBrowser.LocationURL End Property 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=WebBrowser,WebBrowser,-1,LocationName Public Property Get LocationName() As String Attribute LocationName.VB_Description = "Gets the short (UI-friendly) name of the URL/file currently viewed." LocationName = WebBrowser.LocationName End Property 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES! 'MappingInfo=WebBrowser,WebBrowser,-1,Navigate Public Sub Navigate(Url As String, Optional Flags As Variant, Optional TargetFrameName As Variant, Optional PostData As Variant, Optional Headers As Variant) Attribute Navigate.VB_Description = "Navigates to a URL or file." On Error Resume Next WebBrowser.Navigate Url, Flags, TargetFrameName, PostData, Headers If Err.Number <> 0 Then Beep End Sub Public Property Get ShowStatus() As BRStatusType Attribute ShowStatus.VB_Description = "Set to True if browser should show status messages" Attribute ShowStatus.VB_ProcData.VB_Invoke_Property = ";Appearance" ShowStatus = Status.Visible End Property Public Property Let ShowStatus(ByVal New_ShowStatus As BRStatusType) Status.Visible = New_ShowStatus PropertyChanged "ShowStatus" End Property Private Sub WebBrowser_TitleChange(ByVal Text As String) RaiseEvent TitleChange(Text) End Sub 'Initialize Properties for User Control Private Sub UserControl_InitProperties() End Sub 'Load property values from storage Private Sub UserControl_ReadProperties(PropBag As PropertyBag) UserControl.BackColor = PropBag.ReadProperty("BackColor", &H80000005) UserControl.ForeColor = PropBag.ReadProperty("ForeColor", &H80000008) UserControl.Enabled = PropBag.ReadProperty("Enabled", True) UserControl.BackStyle = PropBag.ReadProperty("BackStyle", 1) Status.Visible = PropBag.ReadProperty("ShowStatus", True) End Sub 'Write property values to storage Private Sub UserControl_WriteProperties(PropBag As PropertyBag) Call PropBag.WriteProperty("BackColor", UserControl.BackColor, &H80000005) Call PropBag.WriteProperty("ForeColor", UserControl.ForeColor, &H80000008) Call PropBag.WriteProperty("Enabled", UserControl.Enabled, True) Call PropBag.WriteProperty("BackStyle", UserControl.BackStyle, 1) Call PropBag.WriteProperty("ShowStatus", Status.Visible, True) End Sub Listing Two 10 BITMAP home.bmp 11 BITMAP stop.bmp 12 BITMAP search.bmp 13 BITMAP refresh.bmp 14 BITMAP lhand.bmp 15 BITMAP rhand.bmp 20 BITMAP logor.bmp 21 BITMAP logog.bmp 22 BITMAP logob.bmp