Multimedia Issues

Applies To: Windows 7, Windows Vista

There are several known multimedia issues addressed by the Compatibility Administrator through compatibility fixes and compatibility modes.

Fix Name Symptom Fix Description


You do not hear any sound.

Modifies the waveOutOpen and waveOutClose functions to override the caller-specified waveOutProc function. This fix substitutes its own waveOutProc callback function, deferring the calls to the original callback function until it is safe to call other system functions.


You do not hear any sound or only some sounds play.

Modifies the acmStreamOpen function to provide a samples-per-block value that passes the IMA ADPCM parameter validation.


The application does not detect sound devices.

Enables SecureROM applications to open the sound devices by emulating the Microsoft Windows®°95 operating system and the Microsoft Windows®°98 operating system. This fix forces the device read/write permissions to match the permissions necessary for all I/O controls.


You receive an error message stating "Sound hardware already in use" because the application cannot use your sound hardware.

Enables SecureROM applications to open the sound devices by emulating Windows 95 and Windows 98. This fix forces the device read/write permissions to match the permissions necessary for all I/O controls.


Sounds do not play while using the Audio Compression Manager drivers.

Modifies the acmStreamConvert and acmStreamPrepareHeader functions to correct cases where the cbSrcLength section of the ACMSTREAMHEADER structure is too large.


You receive an error message stating "Active Movie Control: An object or a name was not found."

Modifies the WinExec function to determine when the AMOVIE.OCX function starts to play a movie, and then reroutes the command to Windows Media Player to play the movie.


You receive an error message stating that your sound device driver failed to load.

Modifies the waveOutOpen, waveOutGetDevCaps, midiOutOpen, and midiOutGetDevCaps functions to interpret when uDeviceID is 0xFFFF. In 16-bit windows, the uDeviceID value of 0xFFFF identified the WAVE_MAPPER. However, in 32-bit Windows, this value changed to 0xFFFFFFFF.

This compatibility fix converts any uDeviceID value of 0xFFFF to 0xFFFFFFFF.


The sound loops perpetually, and the application does not always respond to shutdown requests.

Modifies the PlaySound and sndPlaySound functions to emulate the Windows 95 and Windows 98 behavior. If an application calls PlaySound with the SND_LOOP flag, the sound plays continuously until the application calls PlaySound with a NULL sound name. This compatibility fix emulates the Windows 95 behavior, by causing the current sound to stop playing when the application plays a different sound.


AVI files continue to run behind the Menu screen.

Filters the calls made to the MCI and causes them to execute in the existing destination window instead of continuously opening new windows.


The cursor freezes momentarily during background music changes.

Modifies the mciSendCommand function to ignore the MCI_STOP command, issued in response to the MC_CLOSE command. On Windows 95 and Windows 98, the MCI_STOP command has a relatively fast response time, but on Windows 2000 and Windows XP Professional, it can take several seconds.


The application attempts to send sound to the wrong device (usually to an audio card instead of to the desired USB devices).

Modifies the waveOutOpen and waveOutGetDevCaps functions to force the application to use the WAVE_MAPPER device instead of the device specified in the function. It is only safe to apply this compatibility fix to applications that incorrectly attempt to open device 0 in order to open the default device.

See Also


Known Compatibility Fixes, Compatibility Modes, and AppHelp Messages
Internet Explorer Compatibility Test Tool