MCI 命令分类

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

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

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

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

系统命令

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

字符串 消息 描述
中断 MCI_BREAK 设置 MCI 设备的断键。
sysinfo MCI_SYSINFO 返回有关 MCI 设备的信息。

 

所需命令

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

字符串 消息 描述
功能 MCI_GETDEVCAPS 获取设备的功能。
关闭 MCI_CLOSE 关闭设备。
信息 MCI_INFO 从设备获取文本信息。
打开 MCI_OPEN 初始化设备。
状态 MCI_STATUS 从设备获取状态信息。 不需要此命令的一些标志,因此也是一个基本命令。

 

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

基本命令

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

字符串 消息 描述
加载 MCI_LOAD 从文件加载数据。
暂停 MCI_PAUSE 停止播放。 可以在当前位置恢复播放或录制。
播放 MCI_PLAY 开始传输输出数据。
记录 MCI_RECORD 开始记录输入数据。
恢复 MCI_RESUME 在暂停的设备上恢复播放或录制。
保存 MCI_SAVE 将数据保存到磁盘文件。
查找 MCI_SEEK 向前或向后查找。
设置 MCI_SET 设置设备的运行状态。
状态 MCI 状态 获取有关设备的状态信息。 这也是必需的命令;由于某些标志不是必需的,因此也会在此处列出。 (可选项支持使用具有可识别位置的线性媒体的设备。
停止 MCI_STOP 停止播放。

 

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

扩展命令

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

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

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

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