Командные строки
[Функция, связанная с этой страницей, MCI, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо MCI. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Чтобы отправить строковую команду на устройство MCI, используйте функцию mciSendString , которая включает параметры для строковой команды и буфер для всех возвращаемых сведений.
Функция mciSendString возвращает ноль в случае успешного выполнения. Если функция завершается сбоем, слово низкого порядка возвращаемого значения содержит код ошибки. Этот код ошибки можно передать в функцию mciGetErrorString , чтобы получить текстовое описание ошибки.
Синтаксис командных строк
В строках команд MCI используется согласованный синтаксис модификатора verb-object-modifier. Каждая командная строка содержит команду, идентификатор устройства и аргументы команды. Аргументы являются необязательными для некоторых команд и обязательными для других.
Командная строка имеет следующую форму:
аргументы device_id команд
Эти компоненты содержат следующие сведения:
Команда указывает команду MCI, например открыть, закрыть или воспроизвести.
Device_id идентифицирует экземпляр драйвера MCI. При открытии устройства создается device_id.
Аргументы указывают флаги и переменные, используемые командой . Флаги — это ключевые слова, распознаваемые с помощью команды MCI. Переменные — это числа или строки, которые применяются к команде или флагу MCI.
Например, команда воспроизведения использует аргументы "from position " и "to position " для указания позиций, с которых следует начинать и завершать воспроизведение. Вы можете перечислить флаги, используемые с командой, в любом порядке. При использовании флага, с которым связана переменная, необходимо указать значение для переменной.
Для неуказательных (и необязательных) аргументов команды предполагается значение по умолчанию.
В следующем примере функция отправляет команду воспроизведения с флагами "from" и "to".
BOOL PlayFromTo(LPTSTR lpstrAlias, DWORD dwFrom, DWORD dwTo)
{
TCHAR achCommandBuff[128];
int result;
MCIERROR err;
// Form the command string.
result = _stprintf_s(
achCommandBuff,
TEXT("play %s from %u to %u"),
lpstrAlias, dwFrom, dwTo);
if (result == -1)
{
return FALSE;
}
// Send the command string.
err = mciSendString(achCommandBuff, NULL, 0, NULL);
if (err != 0)
{
return FALSE;
}
return TRUE;
}
Типы данных для командных переменных
Для переменных в командной строке можно использовать следующие типы данных.
Data type | Описание |
---|---|
строк | Строковые типы данных разделяются начальными и конечными пробелами и кавычками. MCI удаляет одинарные кавычки из строки. Чтобы поставить кавычки в строку, используйте набор из двух кавычек, в которые вы хотите внедрить кавычки. Чтобы использовать пустую строку, используйте две кавычки, разделенные пробелами в начале и конце. |
Длинные целые числа со знаком | Типы данных со знаком с длинными целыми числами разделяются начальными и конечными пробелами. Если не указано иное, целые числа могут быть положительными или отрицательными. При использовании отрицательных целых чисел не следует разделять знак "минус" и первую цифру пробелом. |
Прямоугольники | Типы данных Rectangle — это упорядоченный список из четырех подписанных коротких значений. Пробелы разделяют этот тип данных и разделяют каждое целое число в списке. |