The Debugging Version of MMSYSTEM

The SDK includes both retail and debugging versions of the MMSYSTEM module. The debugging version provides the following services:

Detects invalid waveform and MIDI device handles.

Displays a string representation of commands sent to MCI.

Contains symbolic information that can be used with Microsoft CodeView for Windows (CVW) and the Microsoft Windows 80386 Debugger (WDEB386).

If the debugging version detects an invalid waveform or MIDI device handle, it reports the error on the debugging monitor and calls the FatalExit function with an exit code of 0x1000. If the error occurs while you are running CVW, the fatal exit is reported in the CVW command window. If the error occurs while you are running WDEB386, the fatal exit is reported on the debugging monitor. In either case, the debugger (CVW or WDEB386) prompts you with an “Abort, Break, or Ignore” message allowing you to terminate Windows, enter the debugger, or continue from the point of the fatal exit. See the chapters on CVW and WDEB386 in the Programming Tools manual in the SDK for more information on debugging fatal exits.

The debugging version displays commands sent to MCI on the debugging monitor. All commands, whether sent with command strings or with command messages, are displayed in command-string format. See the Multimedia Programmer's Reference for information on MCI command strings. The MCI debugging output can be disabled—for more information, see “Controlling Debugging Output,” later in this chapter.

The debugging version includes symbolic information not provided in the retail version. This information makes it easier to determine the cause of certain errors such as general protection (GP) faults. If you're using the debugging version with CVW or WDEB386, you can determine what part of Windows multimedia code was executing when a failure occurred. See the Programming Tools manual in the SDK for information on using CVW and WDEB386.