midiStreamOpen 函数 (mmeapi.h)

midiStreamOpen 函数打开 MIDI 流进行输出。 默认情况下,设备在暂停模式下打开。 此函数检索到的流句柄必须在流的所有后续引用中使用。

语法

MMRESULT midiStreamOpen(
  LPHMIDISTRM phms,
  LPUINT      puDeviceID,
  DWORD       cMidi,
  DWORD_PTR   dwCallback,
  DWORD_PTR   dwInstance,
  DWORD       fdwOpen
);

parameters

phms

指向在函数返回时包含流句柄的变量的指针。

puDeviceID

指向设备标识符的指针。 设备代表流打开,并在流关闭时再次关闭。

cMidi

保留;必须为 1。

dwCallback

指向回调函数、事件句柄、线程标识符或在 MIDI 播放期间调用的窗口或线程句柄的指针,以处理与播放进度相关的消息。 如果不需要回调机制,请为此参数指定 NULL

dwInstance

使用每个回调函数返回到应用程序的特定于应用程序的实例数据。

fdwOpen

用于打开设备的回调标志。 必须指定以下回调标志之一。

含义
CALLBACK_EVENT dwCallback 参数是一个事件句柄。 此回调机制仅用于输出。
CALLBACK_FUNCTION dwCallback 参数是回调过程地址。 有关回调签名,请参阅 MidiOutProc
CALLBACK_NULL 没有回调机制。 这是默认设置。
CALLBACK_THREAD dwCallback 参数是线程标识符。
CALLBACK_WINDOW dwCallback 参数是窗口句柄。

返回值

如果成功,则返回MMSYSERR_NOERROR,否则返回错误。 可能的错误值包括以下内容。

返回代码 说明
MMSYSERR_BADDEVICEID
指定的设备标识符在范围外。
MMSYSERR_INVALPARAM
给定的句柄或标志参数无效。
MMSYSERR_NOMEM
系统无法分配或锁定内存。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 mmeapi.h (包括 Windows.h)
Library Winmm.lib
DLL Winmm.dll

另请参阅

MIDI 函数