none
Error : The object invoked has disconnected from its clients.

    Question

  • I have created a simple program to navigate to a website when selected from a combobox. The navigation works fine but if I close the browser window and try to open a new window using the combobox I get the error:

    System.Runtime.InteropServices.COMException (0x80010108): The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))
       at System.Runtime.InteropServices.ComTypes.IConnectionPoint.Unadvise(Int32 dwCookie)
       at SHDocVw.DWebBrowserEvents2_EventProvider.remove_DocumentComplete(DWebBrowserEvents2_DocumentCompleteEventHandler )
       at SHDocVw.InternetExplorerClass.remove_DocumentComplete(DWebBrowserEvents2_DocumentCompleteEventHandler )
       at detectIE.Form1.set_IE(InternetExplorer WithEventsValue)
       at detectIE.Form1.ComboBox1_SelectedIndexChanged(Object sender, EventArgs e) in C:\Documents and Settings\da315472\My Documents\Visual Studio 2008\Projects\detectIE\detectIE\Form1.vb:line 28
       at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
       at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
       at System.Windows.Forms.ComboBox.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    Here is the code:

    Imports SHDocVw  
    Public Class Form1  
    Private WithEvents IE As InternetExplorer  
     
    Private Sub IE_DocumentComplete(ByVal pDisp As Object, ByRef URL As Object) Handles IE.DocumentComplete  
    MsgBox("nav complete")  
    End Sub  
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged  
    Dim myUrl  
    myUrl = "blank" 
     
    Select Case ComboBox1.Text  
    Case "yahoo"  
    myUrl = Http://www.yahoo.com  
    Case "google"  
    myUrl = "https://www.google.com" 
    End Select  
     
    IE = New SHDocVw.InternetExplorer  
    IE.Visible = True 
    IE.Navigate(myUrl)  
    End Sub  
    End Class  
     
     

    Any idea why this is giving this error?
    Saturday, February 21, 2009 12:41 AM

Answers

  • djacktx said:

    I have created a simple program to navigate to a website when selected from a combobox. The navigation works fine but if I close the browser window and try to open a new window using the combobox I get the error:

    System.Runtime.InteropServices.COMException (0x80010108): The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))


    Thank you Toby for your friendly help.

    Hi djacktx,

    Welcome to MSDN forums!

    I can repro this error message.

    Here is the solution which works fine. Please take it a try.

    Firstly Add Reference Microsoft Internet Controls (shdocvw.dll) to your project:

    Project menu -> Add Reference -> COM tab -> Microsoft Internet Controls

    Imports SHDocVw  
     
    Public Class Form1  
     
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged  
            Dim myUrl As String 
            myUrl = "blank" 
            Select Case ComboBox1.Text  
                Case "yahoo" 
                    myUrl = "Http://www.yahoo.com " 
                Case "google" 
                    myUrl = "https://www.google.com" 
            End Select 
     
            Dim IE As InternetExplorer  
            IE = New SHDocVw.InternetExplorer  
            IE.Visible = True 
            IE.Navigate(myUrl)  
            AddHandler IE.DocumentComplete, AddressOf DocumentComplete  
        End Sub 
     
        Private Sub DocumentComplete(ByVal pDisp As ObjectByRef URL As Object)  
            MsgBox("nav complete")  
        End Sub 
     
    End Class 

     

    Best regards,
    Martin Xie

    Friday, February 27, 2009 8:49 AM

All replies

  • Hello djacktx,

    Your question made me curious and I started some research as i did not have an athock answer. Well, needless to say, I was not able to find an answer but I was able to modify your code and I do not get an error when running it.

    The explorer opens and displays the pages with no errors being thrown.

    Here is what I changed it to:



    Dim IE As InternetExplorer
    IE =
    Nothing
    Dim myUrl As String
    myUrl = "blank"
    Select Case ComboBox1.Text
    Case "yahoo"
    myUrl = "Http://www.yahoo.com"
    Case "google"
    myUrl = "https://www.google.com"
    End Select
    IE = New InternetExplorer
    IE.Navigate(myUrl)


    Let me know if this solves your problem ( as I am really curious to find out :) ).

    Happy coding!

    • Marked as answer by djacktx Saturday, February 21, 2009 5:24 PM
    • Unmarked as answer by djacktx Saturday, February 21, 2009 5:43 PM
    Saturday, February 21, 2009 3:23 AM
  •  Toby.NY,

    That fixed the error but now the DocumentComplete no longer works. What I need to do is to navigate to the site and once the site has loaded additional code will run. Since DocumentComplete never fires I can't run the additional code. Any ideas?

    djacktx
    Saturday, February 21, 2009 5:26 PM
  • djacktx said:

    I have created a simple program to navigate to a website when selected from a combobox. The navigation works fine but if I close the browser window and try to open a new window using the combobox I get the error:

    System.Runtime.InteropServices.COMException (0x80010108): The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))


    Thank you Toby for your friendly help.

    Hi djacktx,

    Welcome to MSDN forums!

    I can repro this error message.

    Here is the solution which works fine. Please take it a try.

    Firstly Add Reference Microsoft Internet Controls (shdocvw.dll) to your project:

    Project menu -> Add Reference -> COM tab -> Microsoft Internet Controls

    Imports SHDocVw  
     
    Public Class Form1  
     
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged  
            Dim myUrl As String 
            myUrl = "blank" 
            Select Case ComboBox1.Text  
                Case "yahoo" 
                    myUrl = "Http://www.yahoo.com " 
                Case "google" 
                    myUrl = "https://www.google.com" 
            End Select 
     
            Dim IE As InternetExplorer  
            IE = New SHDocVw.InternetExplorer  
            IE.Visible = True 
            IE.Navigate(myUrl)  
            AddHandler IE.DocumentComplete, AddressOf DocumentComplete  
        End Sub 
     
        Private Sub DocumentComplete(ByVal pDisp As ObjectByRef URL As Object)  
            MsgBox("nav complete")  
        End Sub 
     
    End Class 

     

    Best regards,
    Martin Xie

    Friday, February 27, 2009 8:49 AM
  • Martin,

    That did the trick. It works just the way I need it to. Now I can continue adding my other code. Thanks so much for your help.

    djacktx

    Friday, February 27, 2009 7:06 PM