MCI 命令的分类

[与此页面关联的功能 MCI 是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 MCI。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

MCI 定义了四种命令分类:系统、必需、基本和扩展。 下表描述了这些命令分类:

  • 系统命令 由 MCI 直接处理,而不是由驱动程序处理。
  • 必需的命令 由驱动程序处理。 所有 MCI 驱动程序都必须支持所需的命令和标志。
  • 某些设备使用基本命令 (或可选命令) 。 如果设备支持基本命令,则必须支持该命令的一组已定义的标志。
  • 扩展命令 特定于设备类型或驱动程序。 扩展命令包括命令,例如放置 (MCI_PUT) ,其中 (MCI_WHERE数字视频覆盖设备类型的) 命令,以及现有命令的扩展,如覆盖设备类型 () 的状态 (的“拉伸”标志MCI_STATUS) 命令。

虽然系统命令和必需命令是任何 MCI 驱动程序的最小命令集,但并非所有驱动程序都支持基本命令和扩展命令。 应用程序始终可以使用系统命令和所需命令及其标志,但如果它需要使用基本命令或扩展命令或标志,它应首先使用 (MCI_GETDEVCAPS) 命令的功能来查询驱动程序。 以下部分汇总了每个类别中的特定命令。

系统命令

MCI 直接处理以下系统命令,而不是将它们传递给 MCI 设备。

String Message 说明
打破 MCI_BREAK 为 MCI 设备设置中断键。
sysinfo MCI_SYSINFO 返回有关 MCI 设备的信息。

 

必需命令

所有 MCI 设备都支持以下必需命令。

String Message 说明
能力 MCI_GETDEVCAPS 获取设备的功能。
关闭 MCI_CLOSE 关闭设备。
info MCI_INFO 从设备获取文本信息。
打开 MCI_OPEN 初始化设备。
status MCI_STATUS 从设备获取状态信息。 此命令的某些标志不是必需的,因此它也是一个基本命令。

 

设备还必须支持所需命令的标准命令标志集。

基本命令

以下列表汇总了基本命令。 MCI 设备使用这些命令是可选的。

String Message 说明
加载 MCI_LOAD 从文件加载数据。
暂停 MCI_PAUSE 停止播放。 可以在当前位置恢复播放或录制。
玩游戏 MCI_PLAY 开始传输输出数据。
记录 MCI_RECORD 开始记录输入数据。
恢复 MCI_RESUME 在暂停的设备上继续播放或录制。
MCI_SAVE 将数据保存到磁盘文件。
寻求 MCI_SEEK 向前或向后查找。
设置 MCI_SET 设置设备的运行状态。
status MCI 状态 获取有关设备的状态信息。 这也是必需的命令;由于其中一些标志不是必需的,因此也在此处列出。 (可选项支持使用具有可识别位置的线性介质的设备。)
停止 MCI_STOP 停止播放。

 

如果驱动程序支持基本命令,则它还必须支持该命令的标准标志集。

扩展命令

某些 MCI 设备具有其他命令,或者向现有命令添加标志。 虽然某些扩展命令仅适用于特定设备驱动程序,但大多数命令适用于特定设备类型的所有驱动程序。 例如, sequencer 设备类型的命令集扩展 集 (MCI_SET) 命令,以添加 MIDI 排序器所需的时间格式。

不应假定设备支持扩展命令或标志。 可以使用 MCI_GETDEVCAPS) 命令 (功能来确定特定功能是否受支持,并且应用程序应准备好处理“不支持的命令”或“不支持的函数”返回值。

以下扩展命令可用于列出的设备类型。

String Message 设备类型 说明
配置 MCI_CONFIGURE digitalvideo 显示配置对话框。
提示 MCI_CUE digitalvideo、waveaudio 准备播放或录制。
删除 MCI_DELETE waveaudio 从媒体文件中删除数据段。
escape MCI_ESCAPE videodisc 将自定义信息发送到设备。
冻结 MCI_FREEZE overlay 禁用帧缓冲区的视频采集。
MCI PUT digitalvideo, overlay 定义源窗口、目标窗口和框架窗口。
实现 MCI_REALIZE digitalvideo 指示设备在显示窗口的设备上下文中选择并实现其调色板。
setaudio MCI_ SETAUDIO digitalvideo 设置视频的音频参数。
setvideo MCI_ SETVIDEO digitalvideo 设置视频参数。
signal MCI_SIGNAL digitalvideo 使用信号标识指定位置。
自 旋 MCI_SPIN videodisc 启动光盘旋转或停止光盘旋转。
MCI_STEP digitalvideo、videodisc 逐步向前或反向播放一个或多个帧。
解冻 MCI_UNFREEZE overlay 使帧缓冲区能够获取视频数据。
更新 MCI_UPDATE digitalvideo 将当前帧重新绘制到设备上下文中。
其中 MCI WHERE digitalvideo, overlay 获取指定源、目标或框架区域的矩形。
窗口 MCI_WINDOW digitalvideo, overlay 控制显示窗口。