命令字符串
[与此页面关联的功能 MCI 是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer 而不是 MCI。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
若要将字符串命令发送到 MCI 设备,请使用 mciSendString 函数,其中包括字符串命令的参数和任何返回信息的缓冲区。
如果成功, mciSendString 函数返回零。 如果函数失败,则返回值的低序字包含错误代码。 可以将此错误代码传递给 mciGetErrorString 函数,以获取错误的文本说明。
命令字符串的语法
MCI 命令字符串使用一致的谓词对象修饰符语法。 每个命令字符串包括命令、设备标识符和命令参数。 对于某些命令,参数是可选的,而对于其他命令,参数是必需的。
命令字符串具有以下形式:
命令device_id参数
这些组件包含以下信息:
device_id标识 MCI 驱动程序的实例。 打开设备时会创建 device_id 。
参数指定命令使用的标志和变量。 标志是使用 MCI 命令识别的关键字。 变量是应用于 MCI 命令或标志的数字或字符串。
例如, play 命令使用参数“from position ”和“to position ”来指示开始和结束播放的位置。 可以按任意顺序列出用于命令的标志。 使用具有与之关联的变量的标志时,必须为变量提供值。
未指定的 (和可选的) 命令参数采用默认值。
以下示例函数使用“from”和“to”标志发送 play 命令。
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;
}
命令变量的数据类型
可以对命令字符串中的变量使用以下数据类型。
数据类型 | 描述 |
---|---|
字符串 | 字符串数据类型由前导空格和尾随空格和引号分隔。 MCI 从字符串中删除单引号。 若要在字符串中放置引号,请使用一组两个引号,在其中嵌入引号。 若要使用空字符串,请使用由前导空格和尾随空格分隔的两个引号。 |
带符号长整数 | 带符号长整数数据类型由前导空格和尾随空格分隔。 除非另行指定,否则整数可以是正数或负数。 如果使用负整数,则不应用空格分隔减号和第一个数字。 |
矩形 | 矩形数据类型是四个有符号短值的有序列表。 空格分隔此数据类型,并分隔列表中的每个整数。 |