FIX: GPF When Close Form That Contains a Single MCI Control
ID: Q95500
|
The information in this article applies to:
-
Microsoft Visual Basic Standard and Professional Editions for Windows, versions 2.0, 3.0
-
Microsoft Visual Basic programming system for Windows, version 1.0
SYMPTOMS
When you have a single MCI control on a form and you set the hWndDisplay
property to the form's hWnd, you will receive a general protection (GP)
fault upon closing Form1 through the System Control of Form1. This problem
does not occur when you have a second control on Form1 in which you
set the HwndDisplay property to the hWnd of the other control.
WORKAROUND
Here's an example that shows how to work around the problem. The code
listed below places a picture box on Form1, changes the BoarderStyle to '0'
(None), and then places an MCI control on Form1:
Sub Form_Load()
MMControl1.FileName = "c:\vb\samples\mci\mcitest.mmm"
'** file in the ..\samples\mci directory of VB 2.0
MMControl1.hWndDisplay = Picture1.hWnd
'** note the picture's hWnd is used in place of the form's.
MMControl1.Command = "Open"
End Sub
Sub Form_Unload()
MMControl1.Command = "Close"
End Sub
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. This problem has been corrected in Visual
Basic version 4.0.
MORE INFORMATION
Steps to Reproduce Problem
- Start VB.EXE.
- Choose Add File... from the File menu and add the MCI.VBX file.
- Place an MCI control on Form1.
- Place the following code in the Form_Load event procedure of Form1:
Sub Form_Load()
MMControl1.FileName = "c:\vb\samples\mci\mcitest.mmm"
'** file in the ..\samples\mci directory of VB 2.0
MMControl1.hWndDisplay = Form1.hWnd
'** docerr DisplayHwnd on page 248 of Professional Features
MMControl1.Command = "Open"
End Sub
- Place the following code in Form_Unload event of Form1:
Sub Form_Unload()
MMControl1.Command = "Close"
End Sub
- Press the F5 key to run the example, which may result in a GP fault
when you try to close Form1's System Control box. The GP fault
address is 0001:2817.
NOTE: This example and any example of using the MCI control can be run
only in Windows version 3.1 or in Windows version 3.0 with Multimedia
Extensions. You need add the following line to the Multimedia Extensions
section ([mci extensions]) of your WIN.INI file:
MMM=MMMovie
Additional query words:
buglist1.00 buglist2.00 buglist3.00 fixlist4.00 2.00 3.00
Keywords : PrgCtrlsCus
Version : 1.00 2.00 3.00
Platform : WINDOWS
Issue type :