Basic commands are commands all device types should understand but can modify the parameters. For example, when issuing a PLAY command to a Videodisc Player, it might be desirable to indicate the speed of playback in frames per second. However, a device such as a CD Player might not have the capability to play back at different speeds.
The list of basic commands is shown in the following table. If a device does not use a device-type command, it can return MCIERR_UNSUPPORTED_FUNCTION. If a device supports the command, but not all of the options, it can return the MCIERR_UNSUPPORTED_FLAG for options that are not applicable.
┌────────────────────────┬────────────────────────────────────────┐ │Message │Description │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_CONNECTOR │Enables, disables, counts the number of,│ │ │or queries the status of connectors. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_LOAD │Loads a new device element (file name) │ │ │into an open device context. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_MASTERAUDIO │Sets the system master audio setting for│ │ │all audio devices in the system. │ │ │MCI_MASTERAUDIO is also used as a system│ │ │command to query the current audio │ │ │settings when the driver is first │ │ │opened. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_PAUSE │Suspends device playback. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_PLAY │Starts playing the device. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_RECORD │Starts recording data. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_RESUME │Resumes playing or recording from a │ │ │paused state. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_SAVE │Saves data for the device. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_SEEK │Moves to the specified position and │ │ │stops. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_SET │Sets the operating state of the device. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_SETCUEPOINT │Sets a cuepoint. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_SETPOSITIONADVISE │Sets a position change notification for │ │ │the device. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_STATUS │Obtains information about the status of │ │ │a media device. │ ├────────────────────────┼────────────────────────────────────────┤ │MCI_STOP │Stops the device. │ └────────────────────────┴────────────────────────────────────────┘
The basic command messages use the ulParam1 parameter for the flags applicable to the command message. They also use the pParam2 parameter for a pointer to a message-specific data structure. Your MCD might add flags and parameters to create extended commands. When you extend a command message, your MCD must still respond to the basic flags and parameters.
The following table identifies the flags and data structures of the basic command messages. For a complete reference of media control interface commands, refer to the OS/2 Multimedia Programming Reference.
┌────────────────────────┬────────────────────────────┬────────────────────────────┐ │Message │Parameters (ulParam1) │Data Structure (pParam2) │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_CONNECTOR │MCI_NOTIFY │MCI_CONNECTOR_PARMS │ │ │MCI_WAIT │ │ │ │MCI_ENABLE_CONNECTOR │ │ │ │MCI_DISABLE_CONNECTOR │ │ │ │MCI_QUERY_CONNECTOR_STATUS │ │ │ │MCI_CONNECTOR_TYPE │ │ │ │MCI_CONNECTOR_INDEX │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_LOAD │MCI_OPEN_ELEMENT │MCI_LOAD_PARMS │ │ │MCI_OPEN_MMIO │ │ │ │MCI_NOTIFY │ │ │ │MCI_WAIT │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_MASTERAUDIO │MCI_WAIT │MCI_MASTERAUDIO_PARMS │ │ │MCI_QUERYCURRENTSETTING │ │ │ │MCI_QUERYSAVEDSETTING │ │ │ │MCI_SAVESETTING │ │ │ │MCI_MASTERVOL │ │ │ │MCI_SPEAKERS │ │ │ │MCI_HEADPHONES │ │ │ │MCI_ON │ │ │ │MCI_OFF │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_PAUSE │MCI_NOTIFY │MCI_GENERIC_PARMS │ │ │MCI_WAIT │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_PLAY │MCI_NOTIFY │MCI_PLAY_PARMS │ │ │MCI_WAIT │ │ │ │MCI_FROM │ │ │ │MCI_TO │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_RECORD │MCI_NOTIFY │MCI_RECORD_PARMS │ │ │MCI_WAIT │ │ │ │MCI_FROM │ │ │ │MCI_TO │ │ │ │MCI_RECORD_INSERT │ │ │ │MCI_RECORD_OVERWRITE │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_RESUME │MCI_NOTIFY │MCI_GENERIC_PARMS │ │ │MCI_WAIT │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_SAVE │MCI_NOTIFY │MCI_SAVE_PARMS │ │ │MCI_WAIT │ │ │ │MCI_SAVE_FILE │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_SEEK │MCI_NOTIFY │MCI_SEEK_PARMS │ │ │MCI_WAIT │ │ │ │MCI_TO │ │ │ │MCI_TO_START │ │ │ │MCI_TO_END │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_SET │MCI_NOTIFY │MCI_SET_PARMS │ │ │MCI_WAIT │ │ │ │MCI_SET_AUDIO │ │ │ │MCI_SET_DOOR_OPEN │ │ │ │MCI_SET_DOOR_CLOSED │ │ │ │MCI_SET_DOOR_LOCK │ │ │ │MCI_SET_DOOR_UNLOCK │ │ │ │MCI_SET_VOLUME │ │ │ │MCI_OVER │ │ │ │MCI_SET_VIDEO │ │ │ │MCI_SET_ON │ │ │ │MCI_SET_OFF │ │ │ │MCI_SET_SPEED_FORMAT │ │ │ │MCI_SET_TIME_FORMAT │ │ │ │MCI_SET_ITEM │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_SETCUEPOINT │MCI_NOTIFY │MCI_CUEPOINT_PARMS │ │ │MCI_WAIT │ │ │ │MCI_SET_CUEPOINT_ON │ │ │ │MCI_SET_CUEPOINT_OFF │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_SETPOSITIONADVISE │MCI_NOTIFY │MCI_POSITION_PARMS │ │ │MCI_WAIT │ │ │ │MCI_SET_POSITION_ADVISE_ON │ │ │ │MCI_SET_POSITION_ADVISE_OFF │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_STATUS │MCI_NOTIFY │MCI_STATUS_PARMS │ │ │MCI_WAIT │ │ │ │MCI_STATUS_START │ │ │ │MCI_TRACK │ │ │ │MCI_STATUS_ITEM │ │ ├────────────────────────┼────────────────────────────┼────────────────────────────┤ │MCI_STOP │MCI_NOTIFY │MCI_GENERIC_PARMS │ │ │MCI_WAIT │ │ └────────────────────────┴────────────────────────────┴────────────────────────────┘