Article: Q171978
Product(s): Microsoft Visual Basic for Windows
Version(s):
Operating System(s):
Keyword(s): kbGrpDSVB
Last Modified: 11-JAN-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual Basic Professional Edition for Windows, versions 5.0, 6.0
- Microsoft Visual Basic Enterprise Edition for Windows, versions 5.0, 6.0
-------------------------------------------------------------------------------
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
Additional query words: kbVBp500 kbVBp600 kbVBp kbdsd kbDSupport kbNoKeyWord
======================================================================
Keywords : kbGrpDSVB
Technology : kbVBSearch kbAudDeveloper kbZNotKeyword6 kbZNotKeyword2 kbVB500Search kbVB600Search kbVBA500 kbVBA600 kbVB500 kbVB600
Issue type : kbinfo
=============================================================================