In addition to the required command messages, each driver supports a set of command messages specific to its device type. Where possible, these type-specific (or basic) commands are identical between types. For example, the basic MCI_PLAY command is identical for videodisc and videotape players.
The basic command messages are summarized in the following list. MCI does not modify any of these messages or the data associated with them. MCI relays all information received from the calling application to your device driver.
MCI Message | Description |
---|---|
MCI_LOAD | Loads a device element from disk. |
MCI_PAUSE | Suspends playing or recording. |
MCI_PLAY | Starts transmitting output data. |
MCI_RECORD | Starts recording data. |
MCI_RESUME | Resumes a paused device. |
MCI_SAVE | Saves the current file. Drivers should not destroy the original copy of a file until they receive this message. |
MCI_SEEK | Seeks forward or backward. |
MCI_SET | Sets device information. |
MCI_STATUS | Returns status information from the device. MCI_STATUS as a basic command has additional flags not present for the required message. |
MCI_STOP | Stops playing, with no video shown and no audio played. |
The following table identifies the flags and structures of the basic MCI commands. If a device driver supports any of these commands, it must support the associated set of flags indicated in the table. If your device driver does not support one of these messages, it must respond to it by returning the error code MCI_UNSUPPORTED_FUNCTION.
MCI Command | Command Flags | Structure |
---|---|---|
MCI_LOAD | MCI_LOAD_FILE
MCI_NOTIFY MCI_WAIT MCI_TEST |
MCI_LOAD_PARMS
MCI_OVLY_LOAD_PARMS |
MCI_PAUSE | MCI_NOTIFY
MCI_WAIT MCI_TEST |
MCI_GENERIC_PARMS |
MCI_PLAY | MCI_FROM
MCI_TO MCI_NOTIFY MCI_WAIT MCI_TEST |
MCI_PLAY_PARMS
MCI_ANIM_PLAY_PARMS MCI_VD_PLAY_PARMS |
MCI_RECORD | MCI_FROM
MCI_TO MCI_RECORD_INSERT MCI_RECORD_OVERWRITE MCI_NOTIFY MCI_WAIT MCI_TEST |
MCI_RECORD_PARMS |
MCI_RESUME | MCI_NOTIFY
MCI_WAIT MCI_TEST |
MCI_GENERIC_PARMS |
MCI_SAVE | MCI_SAVE_FILE
MCI_NOTIFY MCI_WAIT MCI_TEST |
MCI_SAVE_PARMS |
MCI_SEEK | MCI_SEEK_TO_END
MCI_SEEK_TO_START MCI_TO MCI_NOTIFY MCI_WAIT MCI_TEST |
MCI_SEEK_PARMS |
MCI_SET | MCI_SET_AUDIO
MCI_SET_DOOR_CLOSED MCI_SET_DOOR_OPEN MCI_SET_TIME_FORMAT MCI_SET_VIDEO MCI_SET_ON MCI_SET_OFF MCI_NOTIFY MCI_WAIT MCI_TEST |
MCI_SET_PARMS
MCI_SEQ_SET_PARMS MCI_WAVE_SET_PARMS |
MCI_STATUS | MCI_STATUS_ITEM
MCI_STATUS_CURRENT_TRACK MCI_STATUS_LENGTH MCI_TRACK MCI_STATUS_IN_TRACK MCI_STATUS_NUMBER_OF_TRACKS MCI_NOTIFY MCI_WAIT MCI_TEST |
MCI_STATUS_PARMS |
MCI_STOP | MCI_NOTIFY
MCI_WAIT MCI_TEST |
MCI_GENERIC_PARMS |
Your device driver might add flags and parameters to create extended commands. When you extend a command message, your device driver must still respond to the basic flags and parameters.