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                    │                            │
└────────────────────────┴────────────────────────────┴────────────────────────────┘


[Back] [Next]