摘要:
提示: 缓冲区写满后送回应用程序; 输入缓冲区只用于系统互斥的消息; 在缓冲区传给 midiInAddBuffer 之前, 先要调用 midiInPrepareHeader 准备; 还要调用 GlobalAlloc 给 TMidiHdr 和其中 lpData 指向的缓冲区分配内存(使用 GMEM_MOVEABLE、GMEM_SHARE), 并用 GlobalLock 锁定. //声明: ... 阅读全文
posted @ 2008-02-22 22:47
万一
阅读(1803)
评论(0)
推荐(0)
摘要:
提示: 错误文本的长度一般不超过 MAXERRORLENGTH = 128; 如果缓冲区太小, 文本会被截断. //声明: midiOutGetErrorText( mmrError: MMRESULT; {错误号} lpText: PChar; {缓冲区} uSize: UINT {缓冲区大小} ): MMRESULT; {成功返回 0... 阅读全文
posted @ 2008-02-22 22:30
万一
阅读(1270)
评论(0)
推荐(0)
摘要:
提示: 错误文本的长度一般不超过 MAXERRORLENGTH = 128; 如果缓冲区太小, 文本会被截断. //声明: midiInGetErrorText( mmrError: MMRESULT; {错误号} lpText: PChar; {缓冲区} uSize: UINT {缓冲区大小} ): MMRESULT; {成功返回 0;... 阅读全文
posted @ 2008-02-22 22:29
万一
阅读(1170)
评论(0)
推荐(0)
摘要:
//声明: midiInMessage( hMidiIn: HMIDIIN; {设备句柄} uMessage: UINT; {消息} dw1: DWORD {消息参数} dw2: DWORD {消息参数} ): MMRESULT; {函数成功返回发送的消息} //举例: 阅读全文
posted @ 2008-02-22 22:24
万一
阅读(1625)
评论(0)
推荐(0)
摘要:
//声明: midiOutMessage( hMidiOut: HMIDIOUT; {设备句柄} uMessage: UINT; {消息} dw1: DWORD {消息参数} dw2: DWORD {消息参数} ): MMRESULT; {函数成功返回发送的消息} //举例: 阅读全文
posted @ 2008-02-22 22:23
万一
阅读(1806)
评论(0)
推荐(0)
摘要:
提示: 在缓冲区给 midiOutLongMsg 之前, 先要调用 midiOutPrepareHeader 准备; 还要调用 GlobalAlloc 给 TMidiHdr 和其中 lpData 指向的缓冲区分配内存(使用 GMEM_MOVEABLE、GMEM_SHARE), 并用 GlobalLock 锁定. //声明: midiOutLongMsg( hMidiOut: HMIDIO... 阅读全文
posted @ 2008-02-22 22:18
万一
阅读(2127)
评论(2)
推荐(0)
摘要:
提示: 此函数可以发送系统专用消息以外的任何 MIDI 消息; 直到已经发送给输出设备才返回. //声明: midiOutShortMsg( hMidiOut: HMIDIOUT; {设备句柄} dwMsg: DWORD {MIDI 消息; 消息是 2 字节, 第一字节在低位} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSY... 阅读全文
posted @ 2008-02-22 22:07
万一
阅读(2313)
评论(0)
推荐(0)
摘要:
//声明: midiOutGetDevCaps( uDeviceID: UINT; {设备 ID} lpCaps: PMidiOutCaps; {TMidiOutCaps 结构的指针} uSize: UINT {TMidiOutCaps 结构的大小} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_BAD... 阅读全文
posted @ 2008-02-22 21:56
万一
阅读(1759)
评论(0)
推荐(0)
摘要:
//声明: midiInGetDevCaps( DeviceID: UINT; {设备 ID} lpCaps: PMidiInCaps; {TMidiInCaps 结构的指针} uSize: UINT {TMidiInCaps 结构的大小} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_BADDEVICE... 阅读全文
posted @ 2008-02-22 21:53
万一
阅读(1773)
评论(0)
推荐(0)
摘要:
提示: 函数将关闭通道上的所有标记, 放弃未处理的缓冲区并返回给程序; //声明: midiOutReset( hMidiOut: HMIDIOUT {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效} //举例: 阅读全文
posted @ 2008-02-22 21:41
万一
阅读(1363)
评论(0)
推荐(0)
摘要:
提示: 函数成功后, 句柄不再有效; 如果已经发送给 midiOutLongMsg 函数的缓冲区没有返回给程序, 函数会失败; 调用 midiOutReset 可将所有挂起的缓冲区标记为已执行. //声明: midiOutClose( hMidiOut: HMIDIOUT {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INV... 阅读全文
posted @ 2008-02-22 21:35
万一
阅读(1348)
评论(0)
推荐(0)
摘要:
提示: 函数成功后, 句柄不再有效; 如果 midiInAddBuffer 发送的缓冲区没有返回到程序, 函数会失败; 调用 midiInReset 可将所有挂起的缓冲区标记为已执行. //声明: midiInClose( hMidiIn: HMIDIIN {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE... 阅读全文
posted @ 2008-02-22 21:31
万一
阅读(1332)
评论(0)
推荐(0)
摘要:
提示: 函数会终止输入, 位置清 0; 放弃未处理的缓冲区并返回给程序; TWaveHdr 结构中的 dwBytesRecorded 将包含实际数据的长度. //声明: midiInReset( hMidiIn: HMIDIIN {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效... 阅读全文
posted @ 2008-02-22 21:24
万一
阅读(1177)
评论(0)
推荐(0)
摘要:
提示: 函数会将当前缓冲区标记为已执行, 但会保留队列中任何空的缓冲区. //声明: midiInStop( hMidiIn: HMIDIIN {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效} //举例: 阅读全文
posted @ 2008-02-22 21:12
万一
阅读(1285)
评论(0)
推荐(0)
摘要:
提示: 该函数会将时间标记清 0; 非系统专用消息会直接给用户; 系统专用消息放在由 midiInAddBuffer 函数提供的缓冲区中, 如果队列中没有缓冲区, 数据将被丢弃; 当缓冲区已满、或接收到一条完全的系统专用消息、或调用 midiInReset 时, 缓冲区返还给用户; TMidiHdr 的 dwBytesRecorded 中会返回实际接收到的数据长度. //声明: midiInS... 阅读全文
posted @ 2008-02-22 21:04
万一
阅读(1389)
评论(0)
推荐(0)
摘要:
//声明: midiOutGetID( hMidiOut: HMIDIOUT; {获取输出设备句柄} lpuDeviceID: PUINT {接受 ID 的变量的指针} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效} //举例: 阅读全文
posted @ 2008-02-22 18:26
万一
阅读(1294)
评论(0)
推荐(0)
摘要:
//声明: midiInGetID( hMidiIn: HMIDIIN; {获取输入设备句柄} lpuDeviceID: PUINT {接受 ID 的变量的指针} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效} //举例: 阅读全文
posted @ 2008-02-22 18:22
万一
阅读(1460)
评论(0)
推荐(0)
摘要:
//声明: midiOutGetNumDevs: UINT; {无参数; 返回 MIDI 输出设备的数目} //举例: 阅读全文
posted @ 2008-02-22 18:15
万一
阅读(1889)
评论(0)
推荐(0)
摘要:
//声明: midiInGetNumDevs: UINT; {无参数; 返回 MIDI 输入设备的数目} //举例: 阅读全文
posted @ 2008-02-22 18:14
万一
阅读(1544)
评论(0)
推荐(0)
摘要:
提示: 设备写满缓冲区返回给程序后, 须调用此函数; 释放(GlobalFree)缓冲区前, 须调用此函数; 取消一个尚未准备的缓冲区将无效, 但函数返回 0 //声明: midiOutUnprepareHeader( hMidiOut: HMIDIOUT; {设备句柄} lpMidiOutHdr: PMidiHdr; {TMidiHdr 结构指针} uSize: UI... 阅读全文
posted @ 2008-02-22 18:05
万一
阅读(1336)
评论(0)
推荐(0)
浙公网安备 33010602011771号