MCI 函数宏和消息

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

大多数 MCI 应用程序使用 mciSendStringmciSendCommand 函数数十次。 MCI 提供应用程序使用频率较低的其他一些有用函数。

大多数 MCI 命令所需的设备标识符通常在调用 打开MCI_OPEN)命令时检索。 如果需要设备标识符但不想打开设备(例如,如果要在执行任何其他作之前查询设备的功能),则可以调用 mciGetDeviceID 函数。

mciGetCreatorTask 函数允许应用程序使用设备标识符检索创建该标识符的任务的句柄。

可以使用 mciGetYieldProcmciSetYieldProc 函数分配和检索与“wait”(MCI_WAIT)标志关联的回调函数的地址。

mciGetErrorString 函数检索描述 MCI 错误值的字符串。 MCI 返回的每个字符串(无论是数据还是错误说明)最多为 128 个字符。 小于 128 个字符的对话框字段将截断 MCI 返回的较长字符串。 有关这些字符串的详细信息,请参阅 MCIERR 返回值

MCI 宏是可用于创建和反汇编指定时间格式的值的工具。 这些时间格式用于许多 MCI 命令。 宏所处理的格式为小时/分钟/秒(HMS)、分钟/秒/帧(MSF),以及跟踪/分钟/秒/帧(TMSF)。 下表列出了宏及其说明。

描述
MCI_HMS_HOUR 从 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_MCINOTIFYMM_MCISIGNAL。 每当该命令指定“notify”(MCI_NOTIFY)标志时,MM_MCINOTIFY消息将通知 MCI 命令的结果。 MM_MCISIGNAL消息特定于数字视频设备;当达到指定位置时,它会通知应用程序。