MM_MCINOTIFY

This message is sent to a window to notify an application that an MCI device has completed an operation. MCI devices send this message only when the MCI_NOTIFY flag is used with an MCI command message or when the notify flag is used with an MCI command string.

Parameters WORD wParam

Contains one of the following message:

MCI_NOTIFY_ABORTED

Indicates the device received a command that prevented the current callback conditions from being met. If a new command interrupts the current command and it also requests notification, the device will send only this message and not MCI_NOTIFY_SUPERSEDED.

MCI_NOTIFY_SUCCESSFUL

Indicates the callback conditions have been met.

MCI_NOTIFY_SUPERSEDED

Indicates the device received another command with the MCI_NOTIFY flag set and the current callback conditions have been superseded.

MCI_NOTIFY_FAILURE

Indicates a device error occurred while the device was executing the command.

LONG lParam

The low-order word specifies the ID of the device initiating the callback.

Return Value

Returns zero if successful. Otherwise, it returns an MCI error code.

Comments

A device returns MM_MCINOTIFY with the MCI_NOTIFY_SUCCESSFUL flag when the action for a command finishes. For example, MCI_PLAY for a CD audio device completes successfully only when it reaches the specified end position or reaches the end of the media. Similarly, MCI_SEEK and MCI_RECORD do not return MCI_NOTIFY_SUCCESSFUL until they reach the specified end position or reach the end of the media.

A device returns the flag MCI_NOTIFY_ABORTED with MM_MCINOTIFY only when it receives a command that prevents it from meeting the notification conditions. For example, MCI_PLAY would not abort notification for a previous play command provided that the new command does not change the play direction or change the ending position for the play command with an active notify. The MCI_RECORD and MCI_SEEK commands behave similarly.

MCI also does not send MCI_NOTIFY_ABORTED when MCI_PLAY or MCI_RECORD is paused with MCI_PAUSE. Sending the MCI_RESUME command will let them continue to meet the callback conditions.

When your application requests notification for a command, check the error return of mciSendMessage or mciSendCommand. If these functions encounter an error and return a nonzero value, MCI will not set notification for the command.