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消息特定于数字视频设备;当达到指定位置时,它会通知应用程序。