MCI 函数宏和消息
[与此页面关联的功能 MCI 是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer 而不是 MCI。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
大多数 MCI 应用程序使用 mciSendString 和 mciSendCommand 函数数十次。 MCI 提供了一些其他有用的功能,应用程序将不太频繁地使用这些函数。
大多数 MCI 命令所需的设备标识符通常在调用 打开 (MCI_OPEN) 命令中检索。 如果需要设备标识符,但不想打开设备(例如,如果要在执行任何其他操作之前查询设备的功能),则可以调用 mciGetDeviceID 函数。
mciGetCreatorTask 函数允许应用程序使用设备标识符检索创建该标识符的任务的句柄。
可以使用 mciGetYieldProc 和 mciSetYieldProc 函数分配和检索与“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_MCINOTIFY 和 MM_MCISIGNAL。 每当命令指定“notify” (MCI_NOTIFY) 标志时,MM_MCINOTIFY消息会通知应用程序 MCI 命令的结果。 MM_MCISIGNAL消息特定于数字视频设备;当达到指定位置时,它会通知应用程序。