How To Programmatically Close a Visual Basic ActiveX Document (293086)



The information in this article applies to:

  • Microsoft Internet Explorer (Programming) 4.0
  • Microsoft Internet Explorer (Programming) 4.01
  • Microsoft Internet Explorer (Programming) 4.01 SP1
  • Microsoft Internet Explorer (Programming) 4.01 SP2
  • Microsoft Internet Explorer (Programming) 5
  • Microsoft Internet Explorer (Programming) 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer (Programming) 5.5
  • Microsoft Visual Basic Enterprise Edition for Windows 5.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Professional Edition for Windows 5.0
  • Microsoft Visual Basic Professional Edition for Windows 6.0

This article was previously published under Q293086

SUMMARY

In some situations, you may want to programmatically close the Internet Explorer window that hosts your Microsoft Visual Basic ActiveX document. This article demonstrates a mechanism that can accomplish this.

MORE INFORMATION

The CloseWindow sub procedure in the following code sample uses the SendMessage function to send a SC_CLOSE message to the Internet Explorer window, which immediately closes the Internet Explorer instance.

Keep in mind that the recommended method to close a Visual Basic document is to navigate the Internet Explorer instance away from the Visual Basic document to another resource.

Step-by-Steps Example

  1. Create a new ActiveX Document DLL project in Visual Basic.
  2. On the Project menu, click References, select Microsoft Internet Controls, and then click OK.
  3. Paste the following code into the User Document code window:
    Option Explicit
    
    
    Private Declare Function SendMessage _
              Lib "user32" Alias "SendMessageA" _
              (ByVal hwnd As Long, _
              ByVal wMsg As Long, _
              ByVal wParam As Long, _
              lParam As Long) _
              As Long
    
    
    Private Sub CloseWindow()
        
        Dim Handle As Long
        Dim ie As InternetExplorer
        
        Const NILL = 0&
        Const WM_SYSCOMMAND = &H112
        Const SC_CLOSE = &HF060&
        
        Set ie = UserDocument.Parent
        
        '   Send the message.
        Handle = SendMessage(ie.hwnd, WM_SYSCOMMAND, SC_CLOSE, NILL)
    
    End Sub
    					
  4. Call the CloseWindow procedure whenever you want to close the Internet Explorer window.

REFERENCES

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

177238 How To Hyperlink in UserDocuments

For more information about developing Web-based solutions for Microsoft Internet Explorer, visit the following Microsoft Web sites:

Modification Type:MajorLast Reviewed:5/11/2006
Keywords:kbActiveDocs kbhowto KB293086