Help and Support
 

powered byLive Search

INFO: Non-Modal Form Support in Visual Basic DLLs

Article ID:171978
Last Review:January 9, 2003
Revision:1.1
This article was previously published under Q171978

SUMMARY

Visual Basic 4.0 ActiveX DLLs (in-process ActiveX Servers) could display forms modally only. Visual Basic versions 5.0 and later allow you to display forms modally or in modeless form. When designing a ActiveX DLL, you have to take into consideration whether the client application supports displaying modeless forms.

MORE INFORMATION

Modeless forms displayed by in-process components cannot function correctly unless they can communicate with the client's message loop. Therefore, in- process components created with Visual Basic can display modeless forms only in client processes that support such communication.

The following applications support the display of modeless forms by in- process components:
Applications created with Visual Basic 5.0 or later.
Microsoft Office 97 or later.
Applications that have the Visual Basic Technology logo.(Those that license Visual Basic for Applications version 5.0 or later.)
Applications that do not support the display of modeless forms by in- process components include:
Applications created with earlier versions of Visual Basic.
Earlier versions of Microsoft Office.
Version 3.0 of Microsoft Internet Explorer.
To allow in-process components to detect at run time whether a client application supports the display of modeless forms, Visual Basic provides the Boolean NonModalAllowed property of the App object.

An in-process component should test this property before showing a modeless form. If the value is True, the form can be shown vbModeless. If the value is False, showing a modeless form will cause run-time error 369. The component should degrade gracefully by showing the form vbModal instead.

For example:
   If App.NonModalAllowed Then
      Form1.Show vbModeless
   Else
      Form1.Show vbModal
   EndIf
				

APPLIES TO
Microsoft Visual Basic 5.0 Professional Edition
Microsoft Visual Basic 6.0 Professional Edition
Microsoft Visual Basic 5.0 Enterprise Edition
Microsoft Visual Basic 6.0 Enterprise Edition

Back to the top

Keywords: 
kbinfo KB171978

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.