Командные сообщения

[Функция, связанная с этой страницей, MCI, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer вместо MCIпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Интерфейс командного сообщения предназначен для использования приложениями, которым требуется интерфейс языка C для управления мультимедийными устройствами. Она использует парадигму передачи сообщений для взаимодействия с устройствами MCI. Команду можно отправить с помощью функции mciSendCommand.

Функция mciSendCommand возвращает ноль в случае успешного выполнения. Если функция завершается ошибкой, слово с низким порядком возвращаемого значения содержит код ошибки. Этот код ошибки можно передать в функцию mciGetErrorString, чтобы получить текстовое описание ошибки.

Синтаксис командных сообщений

Сообщения команд MCI состоят из следующих элементов:

  • Значение константного сообщения
  • Структура, содержащая параметры для команды
  • Набор флагов, указывающих параметры для команды и проверки полей в блоке параметров

В следующем примере используется функция mciSendCommand для отправки команды MCI_ PLAY на устройство, определяемое идентификатором устройства.

mciSendCommand(wDeviceID,            // device identifier 
    MCI_PLAY,                        // command message 
    0,                               // flags 
    (DWORD)(LPVOID) &mciPlayParms);  // parameter block 

Идентификатор устройства, указанный в первом параметре, извлекается при открытии устройства с помощью команды MCI_ OPEN. Последний параметр — адрес структуры MCI_ PLAY_ PARMS, которая может содержать сведения о начале и завершении воспроизведения. Многие сообщения команд MCI используют структуру для хранения параметров такого рода. Первый член каждой из этих структур определяет окно, которое получает сообщение MM_ MCINOTIFY после завершения операции.