This section describes the media control interface command messages.
All messages except system messages operate in an asynchronous mode without notification unless MCI_NOTIFY or MCI_WAIT is specified. These two flags are mutually exclusive. If both are used, the error MCIERR_FLAGS_NOT_COMPATIBLE is returned.
If MCI_WAIT is used, control is not returned to the caller until the command completes. MCI_NOTIFY returns control to the caller and then completes the command. A notification will be sent to the application if MCIERR_SUCCESS was returned on the call. The second parameter specified for each message is a pointer to a control block structure associated with that message. This pointer is passed in the pParam2 parameter of mciSendCommand. The following table lists the command messages.
┌─────────────────────────┬───────────────────────────────────┐ │Command │Description │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_ACQUIREDEVICE │Requests the use of the media │ │ │device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_BUFFER │Allows an application to allocate │ │ │(or deallocate) buffers for use │ │ │with the audio device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_CAPTURE │Causes a video device to capture │ │ │the current video image. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_CLOSE │Closes a device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_CONNECTION │Queries the device ID of a │ │ │connected device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_CONNECTOR │Enables or disables a connector, or│ │ │to query the status of a connector.│ ├─────────────────────────┼───────────────────────────────────┤ │MCI_CONNECTORINFO │Determines the total number of │ │ │connectors on a device, the number │ │ │of connectors of a specific type, │ │ │the type of each of the connectors,│ │ │and whether or not a particular │ │ │type of connection is valid for a │ │ │connector. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_COPY │Copies data from the device element│ │ │to the clipboard or a user-supplied│ │ │buffer. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_CUE │Signals a device to ready itself │ │ │(preroll) so that a subsequent │ │ │playback or recording operation │ │ │begins with minimum delay. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_CUT │Removes data from the device │ │ │element and copies it to the │ │ │clipboard or a user-supplied │ │ │buffer. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_DEFAULT_CONNECTION │Makes, breaks, and queries default │ │ │connections between devices. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_DELETE │Removes the specified range of data│ │ │from the device element. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_DEVICESETTINGS │Allows a media control driver (MCD)│ │ │to insert custom settings pages │ │ │into a Settings notebook. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_ESCAPE │Sends a string directly to the │ │ │driver. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_FREEZE │Freezes the motion of a video │ │ │image. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_GETDEVCAPS │Returns static information about a │ │ │particular driver. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_GETIMAGEBUFFER │Reads data from the image capture │ │ │buffer. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_GETIMAGEPALETTE │Obtains a palette or color map for │ │ │the current image. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_GETTOC │Interrogates the device, and │ │ │returns a table of contents │ │ │structure for the currently loaded │ │ │disk. (CD Audio Only) │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_GROUP │Used to provide the appropriate │ │ │message handling for GROUP │ │ │commands. GROUP commands allow you│ │ │to control several multimedia │ │ │devices from a single MCI command. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_INFO │Returns string information from a │ │ │media device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_LOAD │Specifies a new file or RIFF chunk │ │ │to be loaded into an already │ │ │existing device context. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_MASTERAUDIO │Provides support for setting and │ │ │retrieving system-wide audio │ │ │control parameters. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_MIXNOTIFY │Notifies an application of mixer │ │ │attribute changes. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_MIXSETUP │Informs the mixer device that the │ │ │application wishes to read or write│ │ │buffers directly and sets up the │ │ │device in the correct mode. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_OPEN │Opens a logical multimedia device │ │ │and creates a new device context │ │ │for use by an application. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_PASTE │Pastes data from the clipboard or a│ │ │user-supplied buffer into the │ │ │specified range of a device │ │ │element. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_PAUSE │Suspends playback or recording. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_PLAY │Signals the device to begin │ │ │transmitting data. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_PUT │Sets the source and destination │ │ │rectangle arrays for the │ │ │transformation of the video image. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_RECORD │Starts the device recording input │ │ │data. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_REDO │Redoes the record, cut, paste, or │ │ │delete operation most recently │ │ │undone by MCI_UNDO. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_RELEASEDEVICE │Releases the exclusive use of │ │ │physical device resources by a │ │ │device context or device group. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_RESTORE │Causes a video device to restore │ │ │the image or bitmap. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_RESUME │Resumes playing or recording from a│ │ │paused state. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_REWIND │Seeks the media to the beginning │ │ │point. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SAVE │This message saves the current │ │ │file. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SEEK │Changes the current media position │ │ │of the device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SET │Sets device information. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SET_CUEPOINT │Sets run-time cue points in the │ │ │media device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SETIMAGEBUFFER │Writes data to the image capture │ │ │buffer. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SETIMAGEPALETTE │Sets a palette or color map to be │ │ │used for mapping images. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SET_POSITION_ADVISE │Enables periodic position-change │ │ │messages from the media device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SET_SYNC_OFFSET │Specifies positional offsets for │ │ │devices operating in │ │ │synchronization. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SETTUNER │Sets the frequency for the tuner │ │ │device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SPIN │Spins the player up or down. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_STATUS │Obtains information about the │ │ │status of a media control interface│ │ │device. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_STEP │Steps the player one or more │ │ │frames. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_STOP │Stops audio or video playback or │ │ │recording. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_SYSINFO │Returns information about media │ │ │control interface devices. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_UNDO │Undoes the operation most recently │ │ │performed by record, cut, paste, or│ │ │delete. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_UNFREEZE │Restores motion to an area of the │ │ │display frozen with MCI_FREEZE. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_WHERE │Returns the extent of the clipping │ │ │rectangles. │ ├─────────────────────────┼───────────────────────────────────┤ │MCI_WINDOW │Specifies the window and the window│ │ │characteristics that a graphic │ │ │device should use for display. │ └─────────────────────────┴───────────────────────────────────┘