С помощью команды MCI_GETDEVCAPS можно определить возможности устройства мультимедиа. Для нее используется блок параметров в формате структуры MCI_GETDEVCAPS_PARMS , определенной в файле mmsystem.h следующим образом: typedef struct tagMCI_GETDEVCAPS_PARMS { DWORD dwCallback; DWORD dwReturn; DWORD dwItem; } MCI_GETDEVCAPS_PARMS; typedef MCI_GETDEVCAPS_PARMS FAR * LPMCI_GETDEVCAPS_PARMS;
В поле dwReturn после возврата из функции mciSendCommand будет записано значение требуемого параметра. Код нужного параметра следует записать в поле dwItem перед вызовом функции mciSendCommand.
Приведем возможные значения параметра dwItem:
Значение параметра dwItem | Описание |
MCI_GETDEVCAPS_CAN_EJECT | Если устройство может выталкивать носитель данных (например, компакт-диск), после возврата из функции mciSendCommand в поле dwReturn будет ненулевое значение TRUE |
MCI_GETDEVCAPS_CAN_PLAY | Устройство может проигрывать |
MCI_GETDEVCAPS_CAN_RECORD | Устройство может записывать |
MCI_GETDEVCAPS_CAN_SAVE | Устройство может сохранять записанные данные в файле |
MCI_GETDEVCAPS_COMPOUND_DEVICE | Устройство может работать с файлами |
MCI_GETDEVCAPS_DEVICE_TYPE | Требуется определить тип устройства. Для звукового адаптера возвращается константа MCI_DEVTYPE_WAVEFORM_AUDIO |
MCI_GETDEVCAPS_HAS_AUDIO | Устройство имеет звуковой выход |
MCI_GETDEVCAPS_HAS_VIDEO | Устройство имеет видеовыход |
MCI_GETDEVCAPS_USES_FILES | При открытии устройства требуется указывать имя файла |
MCI_WAVE_GETDEVCAPS_INPUT | Количество звуковых входов |
MCI_WAVE_GETDEVCAPS_OUTPUT | Количество звуковых выходов (каналов) |
Для команды MCI_GETDEVCAPS можно использовать следующий набор флагов:
Флаг | Описание |
MCI_NOTIFY | Если установлен этот флаг, после завершения команды функции окна, адрес которой передан через поле dwCallback, будет послано сообщение MM_MCINOTIFY |
MCI_WAIT | Функция mciSendCommand вернет управление только после завершения процесса |
MCI_GETDEVCAPS_ITEM | Поле dwItem содержит константу, соответствующую определяемому параметру устройства |