Поделиться через


Макросы и сообщения функций MCI

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

Большинство приложений MCI десятки раз используют функции mciSendString и mciSendCommand . MCI предоставляет некоторые другие полезные функции, которые приложение будет использовать реже.

Идентификатор устройства, необходимый для большинства команд MCI, обычно извлекается при вызове команды open (MCI_OPEN). Если вам нужен идентификатор устройства, но вы не хотите открывать устройство ( например, если вы хотите запросить возможности устройства перед выполнением каких-либо других действий), можно вызвать функцию mciGetDeviceID .

Функция mciGetCreatorTask позволяет приложению использовать идентификатор устройства для получения дескриптора задачи, создающей этот идентификатор.

Функции mciGetYieldProc и mciSetYieldProc можно использовать для назначения и получения адреса функции обратного вызова, связанной с флагом wait (MCI_WAIT).

Функция mciGetErrorString извлекает строку, описывающую значение ошибки MCI. Каждая строка, возвращаемая MCI, будь то данные или описание ошибки, не может превышать 128 символов. Поля диалогового окна размером менее 128 символов усекают длинные строки, возвращаемые MCI. Дополнительные сведения об этих строках см. в разделе Возвращаемые значения MCIERR.

Макросы MCI — это средства, которые можно использовать для создания и деассемблирования значений, определяющих форматы времени. Эти форматы времени используются во многих командах MCI. Макросы обрабатывают форматы: часы/минуты/секунды (HMS), минуты/секунды/кадры (MSF) и дорожки/минуты/секунды/кадры (TMSF). В следующей таблице перечислены макросы и их описания.

Макрос Описание
MCI_HMS_HOUR Извлекает компонент hours из значения HMS.
MCI_HMS_MINUTE Извлекает компонент минут из значения HMS.
MCI_HMS_SECOND Извлекает компонент секунд из значения HMS.
MCI_MAKE_HMS Создает значение HMS.
MCI_MAKE_MSF Создает значение MSF.
MCI_MAKE_TMSF Создает значение TMSF.
MCI_MSF_FRAME Извлекает компонент кадров из значения MSF.
MCI_MSF_MINUTE Извлекает компонент минут из значения MSF.
MCI_MSF_SECOND Извлекает компонент секунд из значения MSF.
MCI_TMSF_FRAME Извлекает компонент кадров из значения TMSF.
MCI_TMSF_MINUTE Извлекает компонент минут из значения TMSF.
MCI_TMSF_SECOND Извлекает компонент секунд из значения TMSF.
MCI_TMSF_TRACK Извлекает компонент отслеживания из значения TMSF.

 

MCI также предоставляет два сообщения: MM_MCINOTIFY и MM_MCISIGNAL. Сообщение MM_MCINOTIFY уведомляет приложение о результатах команды MCI всякий раз, когда эта команда задает флаг уведомления (MCI_NOTIFY). Сообщение MM_MCISIGNAL предназначено для цифровых видеоустройств; он уведомляет приложение о достижении указанной позиции.