Playback and Positioning

[The feature associated with this page, MCI, is a legacy feature. It has been superseded by MediaPlayer. MediaPlayer has been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer instead of MCI, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

A number of MCI commands, such as play (MCI_PLAY), stop (MCI_STOP), pause (MCI_PAUSE), resume (MCI_RESUME), and seek (MCI_SEEK), affect the playback or positioning of a multimedia file. If an MCI device receives a playback command while another playback command is in progress, it accepts the command and either stops or supersedes the previous command.

Many MCI commands, such as set (MCI_SET), do not affect playback. A notification from one of these commands does not interfere with pending playback or position commands as long as the notifications are not performed from the same instance of the driver. For example, you can issue a set or status (MCI_STATUS) command while a device is performing a seek command without stopping or superseding the seek command.

However, there can be only one pending notification. For example, if an application requests a notification for play and follows that request with status "start position notify," the play notification will return "superseded" and the notification for the status command will return when it is finished. In this case, however, the play command will still succeed, even though the application did not receive the notification.