MODM_GETPOS 函数

WINMM 将 MODM_GETPOS 消息发送到 MIDI 输出驱动程序的 modMessage 函数,以请求流指针在数据流中的当前位置。

语法

DWORD modMessage(
   UINT      uDeviceID,
   UINT      uMsg,
   DWORD_PTR dwUser,
   DWORD_PTR dwParam1,
   DWORD_PTR dwParam2
);

参数

  • uDeviceID
    指定目标设备的 ID。 设备 ID 将按顺序,其初始值为零,最终值等于比驱动程序支持的设备数小一。

  • uMsg
    在调用 modMessage 来处理此消息时,WINMM 会将此参数设置为 MODM_GETPOS

  • dwUser
    使用此参数可将实例数据返回到驱动程序。 支持多个客户端的驱动程序可以使用此类实例数据跟踪与消息关联的客户端。

  • dwParam1
    指定指向 MMTIME 结构的远指针。

  • dwParam2
    指定 MMTIME 结构的大小(以字节为单位)。

返回值

如果操作成功,modMessage 函数将返回 MMSYSERR_NOERROR。 否则,它将返回 MMSYSERR_NOTENABLED,以指示驱动程序无法加载或初始化。

注解

驱动程序应以 MMTIMEwType 成员中指定的时间格式返回位置。 如果不支持在 wType 中指定的时间格式,驱动程序必须将 wType 更改为默认时间格式,并返回该格式的位置。

将相对于在驱动程序处于上次停止状态时发送的第一个缓冲区的开始时间测量时间。 每当收到 MODM_OPENMODM_RESETMODM_STOP 消息时,都将输入已停止状态。 不会计算 MODM_PAUSE 与匹配的 MODM_RESTART 之间花费的时间,但不应重置时钟。 同样,不得计算驱动程序数据枯竭的时间:返回的时间必须如同流完全播放一样,没有中断或暂停。

如果设备已暂停或枯竭,则返回的时间必须是播放最后一个事件的时间。

要求

目标平台

桌面

版本

适用于 Windows XP 及更高版本的 Windows 操作系统。

标头

Mmddk.h(包括 Mmddk.h、Mmsystem.h 或 Windows.h)

另请参阅

modMessage

MMTIME

MODM_OPEN

MODM_RESET

MODM_STOP

MODM_PAUSE

MODM_RESTART