MCI_STATUS

Used to obtain information about an MCI device. All devices respond to this message. The parameters and flags available for this message depend on the selected device. Information is returned in the dwReturn member of the structure identified by lpStatus.

DWORD lParam1

The following standard and command-specific flags apply to all devices:

MCI_NOTIFY

Specifies that MCI should post the MM_MCINOTIFY message when this command completes. The window to receive this message is specified in the dwCallback member of the structure identified by lpStatus.

MCI_WAIT

Specifies that the status operation should finish before MCI returns control to the application.

MCI_STATUS_ITEM

Specifies that the dwItem member of the structure identified by lpStatus contains a constant specifying which status item to obtain. The following constants define which status item to return in the dwReturn member of the structure:

MCI_STATUS_CURRENT_TRACK

The dwReturn member is set to the current track number. MCI uses continuous track numbers.

MCI_STATUS_LENGTH

The dwReturn member is set to the total media length.

MCI_STATUS_MODE

The dwReturn member is set to the current mode of the device. The modes include the following:


MCI_MODE_NOT_READY

MCI_MODE_OPEN

MCI_MODE_PAUSE

MCI_MODE_PLAY

MCI_MODE_RECORD

MCI_MODE_STOP

MCI_MODE_SEEK


MCI_STATUS_NUMBER_OF_TRACKS

The dwReturn member is set to the total number of playable tracks.

MCI_STATUS_POSITION

The dwReturn member is set to the current position.

MCI_STATUS_READY

The dwReturn member is set to TRUE if the device is ready; otherwise, it is set to FALSE.

MCI_STATUS_TIME_FORMAT

The dwReturn member is set to the current time format of the device. The time formats include:


MCI_FORMAT_BYTES

MCI_FORMAT_FRAMES

MCI_FORMAT_HMS

MCI_FORMAT_MILLISECONDS

MCI_FORMAT_MSF

MCI_FORMAT_SAMPLES

MCI_FORMAT_TMSF


MCI_STATUS_START

Obtains the starting position of the media. To get the starting position, combine this flag with MCI_STATUS_ITEM and set the dwItem member of the structure identified by lpStatus to MCI_STATUS_POSITION.

MCI_TRACK

Indicates a status track parameter is included in the dwTrack member of the structure identified by lpStatus. You must use this flag with the MCI_STATUS_POSITION or MCI_STATUS_LENGTH constants.

When used with MCI_STATUS_POSITION, MCI_TRACK obtains the starting position of the specified track.

When used with MCI_STATUS_LENGTH, MCI_TRACK obtains the length of the specified track. MCI uses continuous track numbers.


LPMCI_STATUS_PARMS lParam2

Specifies a far pointer to the MCI_STATUS_PARMS structure. (Devices with extended command sets might replace this structure with a device-specific structure.)

Animation Extensions

The following extensions for lParam1 apply to animation devices:

MCI_STATUS_ITEM

Specifies that the dwItem member of the structure identified by lParam2 contains a constant specifying which status item to obtain. The following additional status constants are defined for animation devices and indicate which item to return in the dwReturn member of the structure:


MCI_ANIM_STATUS_FORWARD

The dwReturn member is set to TRUE if playing forward; otherwise, it is set to FALSE.

MCI_ANIM_STATUS_HPAL

The dwReturn member is set to the handle of the movie palette.

MCI_ANIM_STATUS_HWND

The dwReturn member is set to the handle of the playback window.

MCI_ANIM_STATUS_SPEED

The dwReturn member is set to the animation speed, in frames per second.


MCI_STATUS_MEDIA_PRESENT

The dwReturn member is set to TRUE if the media is inserted in the device; otherwise, it is set to FALSE.


Note that lParam2 specifies a far pointer to the MCI_STATUS_PARMS structure.

CD Audio Extensions

The following extensions for lParam1 applies to CD audio devices:

MCI_STATUS_ITEM

Specifies that the dwItem member of the structure identified by lParam2 contains a constant specifying which status item to obtain. The following additional status constants are defined for CD audio devices and indicate which item to return in the dwReturn member of the structure:

MCI_STATUS_MEDIA_PRESENT

The dwReturn member is set to TRUE if the media is inserted in the device; otherwise, it is set to FALSE.


Note that lParam2 specifies a far pointer to the MCI_STATUS_PARMS structure. This parameter replaces the standard default parameter structure.

MIDI Sequencer Extensions

The following extensions for lParam1 apply to sequencers:

MCI_STATUS_ITEM

Specifies that the dwItem member of the structure identified by lParam2 contains a constant specifying which status item to obtain. The following additional status constants are defined for sequencers and indicate which item to return in the dwReturn member of the structure:

MCI_SEQ_STATUS_DIVTYPE

The dwReturn member is set to one of the following values indicating the current division type of a sequence:

MCI_SEQ_DIV_PPQN

MCI_SEQ_DIV_SMPTE_24

MCI_SEQ_DIV_SMPTE_25

MCI_SEQ_DIV_SMPTE_30

MCI_SEQ_DIV_SMPTE_30DROP

MCI_SEQ_STATUS_MASTER

The dwReturn member is set to the synchronization type used for master operation.

MCI_SEQ_STATUS_OFFSET

The dwReturn member is set to the current SMPTE offset of a sequence.

MCI_SEQ_STATUS_PORT

The dwReturn member is set to the MIDI device ID for the current port used by the sequence.

MCI_SEQ_STATUS_SLAVE

The dwReturn member is set to the synchronization type used for slave operation.

MCI_SEQ_STATUS_TEMPO

The dwReturn member is set to the current tempo of a MIDI sequence in beats-per-minute for PPQN files, or frames-per-second for SMPTE files.

MCI_STATUS_MEDIA_PRESENT

The dwReturn member is set to TRUE if the media for the device is present; otherwise, it is set to FALSE.


Note that lParam2 specifies a far pointer to the MCI_STATUS_PARMS structure. This parameter replaces the standard default parameter structure.

Videodisc Extensions

The following additional flags for lParam1 apply to videodisc devices:

MCI_STATUS_ITEM

Specifies that the dwItem member of the structure identified by lParam2 contains a constant specifying which status item to obtain. The following additional status constants are defined for videodisc devices and indicate which item to return in the dwReturn member of the structure:

MCI_STATUS_MEDIA_PRESENT

The dwReturn member is set to TRUE if the media is inserted in the device; otherwise, it is set to FALSE.

MCI_VD_STATUS_DISC_SIZE

The dwReturn member is set to the size of the loaded disc in inches (8 or 12).

MCI_VD_STATUS_FORWARD

The dwReturn member is set to TRUE if playing forward; otherwise, it is set to FALSE.

MCI_VD_STATUS_MEDIA_TYPE

The dwReturn member is set to the media type of the inserted media. The following media types can be returned:

MCI_VD_MEDIA_CAV

MCI_VD_MEDIA_CLV

MCI_VD_MEDIA_OTHER

MCI_STATUS_MODE

The dwReturn member is set to the current mode of the device. All devices can return the following constants to indicate the current mode:

MCI_MODE_NOT_READY

MCI_MODE_PAUSE

MCI_MODE_PLAY

MCI_MODE_STOP

MCI_VD_MODE_PARK

The dwReturn member is set to park if the disc is parked. Not all videodisc devices support this flag.

MCI_VD_STATUS_SIDE

The dwReturn member is set to 1 or 2 to indicate which side of the disc is loaded. Not all videodisc devices support this flag.

MCI_VD_STATUS_SPEED

The dwReturn member is set to the play speed in frames per second.


Note that lParam2 specifies a far pointer to the MCI_STATUS_PARMS structure. This parameter replaces the standard default parameter structure.

Waveform Audio Extensions

The following additional flags for lParam1 apply to waveform audio devices:

MCI_STATUS_ITEM

Specifies that the dwItem member of the structure identified by lParam2 contains a constant specifying which status item to obtain. The following additional status constants are defined for waveform audio devices and indicate which item to return in the dwReturn member of the structure:

MCI_STATUS_MEDIA_PRESENT

The dwReturn member is set to TRUE if the media is inserted in the device; otherwise, it is set to FALSE.

MCI_WAVE_INPUT

The dwReturn member is set to the wave input device used for recording. If no device is in use and no device has been explicitly set, then the error return is MCI_WAVE_INPUTUNSPECIFIED.

MCI_WAVE_OUTPUT

The dwReturn member is set to the wave output device used for playing. If no device is in use and no device has been explicitly set, then the error return is MCI_WAVE_OUTPUTUNSPECIFIED.

MCI_WAVE_STATUS_AVGBYTESPERSEC

The dwReturn member is set to the current bytes per second used for playing, recording, and saving.

MCI_WAVE_STATUS_BITSPERSAMPLE

The dwReturn member is set to the current bits per sample used for playing, recording, and saving.

MCI_WAVE_STATUS_BLOCKALIGN

The dwReturn member is set to the current block alignment used for playing, recording, and saving.

MCI_WAVE_STATUS_CHANNELS

The dwReturn member is set to the current channel count used for playing, recording, and saving.

MCI_WAVE_FORMATTAG

The dwReturn member is set to the current format tag used for playing, recording, and saving.

MCI_WAVE_STATUS_LEVEL

The dwReturn member is set to the current record or playback level. The value is returned as an 8- or 16-bit value, depending on the sample size used. The right or mono channel level is returned in the low-order word. The left channel level is returned in the high-order word.

MCI_WAVE_STATUS_SAMPLESPERSEC

The dwReturn member is set to the current samples per second used for playing, recording, and saving.


Note that lParam2 specifies a far pointer to the MCI_STATUS_PARMS structure.

Video Overlay Extensions

The following additional flags for lParam1 apply to video overlay devices:

MCI_OVLY_STATUS_HWND

The dwReturn member is set to the handle of the window associated with the video overlay device.

MCI_STATUS_ITEM

Specifies that the dwItem member of the structure identified by lParam2 contains a constant specifying which status item to obtain. The following additional status constants are defined for video overlay devices and indicate which item to return in the dwReturn member of the structure:

MCI_STATUS_MEDIA_PRESENT

The dwReturn member is set to TRUE if the media is inserted in the device; otherwise, it is set to FALSE.


Note that lParam2 specifies a far pointer to the MCI_STATUS_PARMS structure.