Responding to the MCI_GETDEVCAPS Message

Applications use the MCI_GETDEVCAPS message to determine the capabilities of a device and its device driver. An application will supply a pointer to a MCI_GETDEVCAPS_PARMS data structure. This structure has the following fields:

typedef struct {

DWORDdwCallback;// Callback for MCI_NOTIFY

DWORDdwReturn;// Information returned to user

DWORDdwItem;// Flag specifying type of information

} MCI_GETDEVCAPS_PARMS;

The dwReturn field of this data structure contains the information returned by your device driver. The MCI_GETDEVCAPS_ITEM flag sent by the application validates the dwItem field of this data structure. The contents of dwItem specify the type of information requested. The following constants are always defined for MCI_GETDEVCAPS:

MCI Constant Description

MCI_GETDEVCAPS_CAN_RECORD Return TRUE if device has recording capabilities; false otherwise. Returning TRUE implies that the device driver also has stop and pause capabilities.
MCI_GETDEVCAPS_HAS_AUDIO Return TRUE if the device has audio capabilities; FALSE otherwise.
MCI_GETDEVCAPS_HAS_VIDEO Return TRUE if the device has video capabilities; FALSE otherwise.
MCI_GETDEVCAPS_USES_FILES Return TRUE if the device driver uses files; FALSE otherwise. Returning TRUE implies the device driver is also a compound device.
MCI_GETDEVCAPS_COMPOUND_DEVICE Return TRUE if the device driver uses device elements.
MCI_GETDEVCAPS_DEVICE_TYPE Return the device driver type.
MCI_GETDEVCAPS_CAN_EJECT Return TRUE if the device can eject the media; FALSE otherwise.
MCI_GETDEVCAPS_CAN_PLAY Return TRUE if the device has playback capabilities; FALSE otherwise. Returning TRUE implies that the device driver also has stop and pause capabilities.
MCI_GETDEVCAPS_CAN_SAVE Return TRUE if the device driver can save data; FALSE otherwise.