WinAPI: midiInAddBuffer - 向 MIDI 输入设备发送一个输入缓冲区
2008-02-22 22:47
435 查看
提示:
缓冲区写满后送回应用程序;
输入缓冲区只用于系统互斥的消息;
在缓冲区传给 midiInAddBuffer 之前, 先要调用 midiInPrepareHeader 准备; 还要调用 GlobalAlloc 给 TMidiHdr 和其中 lpData 指向的缓冲区分配内存(使用 GMEM_MOVEABLE、GMEM_SHARE), 并用 GlobalLock 锁定.
缓冲区写满后送回应用程序;
输入缓冲区只用于系统互斥的消息;
在缓冲区传给 midiInAddBuffer 之前, 先要调用 midiInPrepareHeader 准备; 还要调用 GlobalAlloc 给 TMidiHdr 和其中 lpData 指向的缓冲区分配内存(使用 GMEM_MOVEABLE、GMEM_SHARE), 并用 GlobalLock 锁定.
//声明: midiInAddBuffer( hMidiIn: HMIDIIN; {输入设备句柄} lpMidiInHdr: PMidiHdr; {TMidiHdr 结构的指针} uSize: UINT {TMidiHdr 结构的大小} ): MMRESULT; {成功返回 0; 可能的错误值如下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效} MIDIERR_UNPREPARED = 64; {没有准备好缓冲区} //TMidiHdr 是 midihdr_tag 结构的重定义: midihdr_tag = record lpData: PChar; {专用缓冲区的指针} dwBufferLength: DWORD; {指定缓冲区长度} dwBytesRecorded: DWORD; {输入时, 指定缓冲区中的数据量} dwUser: DWORD; {指定用户数据} dwFlags: DWORD; {指定缓冲区信息标志} lpNext: PMidiHdr; {保留(给设备)} reserved: DWORD; {保留(给设备)} dwOffset: DWORD; {回调开始时, 缓冲区的偏移} dwReserved: array[0..7] of DWORD; {保留(给系统)} end; //dwFlags 的可选值: MHDR_DONE = $00000001; {设备已把缓冲区交还给程序} MHDR_PREPARED = $00000002; {已为 midiInPrepareHeader 或 midiOutPrepareHeader 准备好缓冲区} MHDR_INQUEUE = $00000004; {保留(给设备)} MHDR_ISSTRM = $00000008; {是流缓冲区} //举例:
相关文章推荐
- WinAPI: waveInAddBuffer - 向波形输入设备发送一个输入缓冲区
- WinAPI: midiInMessage - 向 MIDI 输入设备发送一条消息
- WinAPI: midiInGetNumDevs - 获取 MIDI 输入设备的数目
- WinAPI: waveInMessage - 向波形输入设备发送一条消息
- WinAPI: midiInClose - 关闭输入设备
- WinAPI: midiInGetID - 获取输入设备 ID
- WinAPI: waveInPrepareHeader - 为波形输入准备一个缓冲区
- WinAPI: midiInGetDevCaps - 查询输入设备性能
- WinAPI: midiInOpen - 打开 MIDI 输入设备
- WinAPI: midiInPrepareHeader - 为 MIDI 输入准备一个缓冲区
- WinAPI: waveInClose - 关闭指定的波形输入设备
- WinAPI: waveInGetPosition - 获取当前输入设备的输入位置
- WinAPI: midiOutPrepareHeader - 为 MIDI输出准备一个缓冲区
- WinAPI: midiInReset - 重置输入
- WinAPI: midiOutShortMsg - 向输出设备发送 MIDI 短消息
- WinAPI: waveInGetDevCaps - 查询输入设备的性能
- WinAPI: midiOutLongMsg - 向输出设备发送一条系统专用的 MIDI 消息
- 汇编语言: 试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收
- WinAPI: waveOutWrite - 向输出设备发送一个数据块
- WinAPI: midiOutMessage - 向 MIDI 输出设备发送一条消息