文档章节

WinAPI: midiInOpen - 打开 MIDI 输入设备

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 329
阅读 13
收藏 0
点赞 0
评论 0
提示:
因为其中的回调函数是在中断时间内访问的, 必须在 DLL 中; 要访问的数据都必须是在固定的数据段中; 除了
PostMessage
timeGetSystemTime
timeGetTime
timeSetEvent
timeKillEvent
midiOutShortMsg
midiOutLongMsg
OutputDebugString 外, 也不能有其他系统调用.

//声明:
midiInOpen(
  lphMidiIn: PHMIDIIN; {用于返回设备句柄的指针; 之后再调用其他函数应该使用这个句柄}
  uDeviceID: UINT;     {设备ID; 不可以指定为常量 MIDI_MAPPER = UINT(-1);}
  dwCallback: DWORD    {回调函数地址或窗口句柄; 若不使用回调机制, 设为 nil}
  dwInstance: DWORD    {给回调函数的实例数据; 不用于窗口}
  dwFlags: DWORD       {打开选项}
): MMRESULT;           {成功返回 0; 可能的错误值见下:}

MMSYSERR_BADDEVICEID = 2;  {设备ID超界}
MMSYSERR_ALLOCATED   = 4;  {指定的资源已被分配}
MMSYSERR_NOMEM       = 7;  {不能分配或锁定内存}

//打开选项 dwFlags 的可选值:
CALLBACK_NULL     = $00000000; {当 dwCallback 是 nil 时指定}
CALLBACK_WINDOW   = $00010000; {当 dwCallback 是窗口句柄时指定}
CALLBACK_FUNCTION = $00030000; {当 dwCallback 是函数指针时指定}

//如果选择窗口接受回调信息, 可能会发送到窗口的消息有:
MM_MIM_OPEN      = $3C1;
MM_MIM_CLOSE     = $3C2;
MM_MIM_DATA      = $3C3;
MM_MIM_LONGDATA  = $3C4;
MM_MIM_ERROR     = $3C5;
MM_MIM_LONGERROR = $3C6;

//如果选择函数接受回调信息, 可能会发送给函数的消息有:
MIM_OPEN      = MM_MIM_OPEN;
MIM_CLOSE     = MM_MIM_CLOSE;
MIM_DATA      = MM_MIM_DATA;
MIM_LONGDATA  = MM_MIM_LONGDATA;
MIM_ERROR     = MM_MIM_ERROR;
MIM_LONGERROR = MM_MIM_LONGERROR;

 
 
 
 
 

 

 

  
//举例:

本文转载自:http://www.cnblogs.com/del/archive/2008/02/23/1079085.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
在 web.xml中配置实现浏览器根据文件类型自动打开

TOMCAT在默认情况下下载.rar的文件是把文件当作text打开,以至于IE打开RAR文件为乱码,如果遇到这种情况时不必认为是浏览器的问题,大多数浏览器应该不会死皮赖脸地把二进制文件当作文本打开,一...

ybxywz ⋅ 2014/12/11 ⋅ 0

用 VC++ 编写 MIDI 文件播放程序

MIDI的意思是乐器数字接口:(Musical Instrument Digital Interface)它是早在微软开发Windows以前就有的一个用于电子键盘的标准。MIDI定义了一个传输和存储音乐信息的协议。 Win32 API 提供...

鉴客 ⋅ 2012/02/14 ⋅ 0

如何快速激活Overture 5得到序列号激活码?

点击下载:Overture 5激活补丁 Overture 5激活补丁是一款专门针对Overture 5而开发使用的一款激活工具软件。Overture 5是一款非常实用且专业的五线谱打谱软件,同时也是该软件目前最新的版本...

龙彪无敌 ⋅ 05/08 ⋅ 0

windows时间 api

typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *PFILETIME, *LPFILETIME; typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek;......

江河海流 ⋅ 2014/05/08 ⋅ 0

JAVA声音技术

声音可以创造意境,触发遐想,当与虚拟图像相结合时,更加可以让整个世界充满幻觉。声音是多媒体技术的基础。这就是Sun公司的JAVA媒体技术开发小组忙于准备Java Sound 1.0 API并将其包含于下...

光石头 ⋅ 2011/02/11 ⋅ 0

Windows 音频知识学习汇总

使用低级音频函数 WaveX : http://blog.csdn.net/kvw3000/article/details/68468 控制着不同的音频设备, 包括 wave, midi 和辅助音频设备. 低级服务包括: (1) 查询音频设备. (2) 打开和关闭设...

刘军兴 ⋅ 2015/12/16 ⋅ 0

MIDI处理器--mididings

mididings是一个为 ALSA 和 JACK MIDI 编写的 MIDI 处理的 Python 模块。 mididings 是MIDI路由器用于ALSA和Jack 的MIDI处理器。它支持过滤和修改在许多不同的方式的MIDI事件,以及对不同补丁...

匿名 ⋅ 2008/11/10 ⋅ 0

WinAPI: ShellExecute - 打开外部程序或文件

WinAPI: ShellExecute - 打开外部程序或文件 ShellExecute(hWnd: HWND; {指定父窗口句柄}Operation: PChar; {指定动作, 譬如: open、print}FileName: PChar; {指定要打开的文件或程序}Parame...

junwong ⋅ 2012/03/09 ⋅ 0

虚拟 MIDI 钢琴键盘

Virtual MIDI Piano Keyboard is a MIDI event generator and receiver. It doesn't produce any sound by itself, but can be used to drive a MIDI synthesizer (either hardware or softw......

匿名 ⋅ 2008/12/01 ⋅ 0

Qtractor 0.5.12 发布,多轨音序生成器

Qtractor 0.5.12 发布,此版本更新内容如下: A session auto-save option has been added. Non-dedicated audio output options have been added to all MIDI plugin chains. Track export ......

oschina ⋅ 2014/01/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Qt中的坑--QTreeWidget添加item 不能显示出来

QTreeWidget* pTree = ui.TreeCheckList; QTreeWidgetItem* item = new QTreeWidgetItem(pTree) ;item->setText ( 0, "test" );pTree->addTopLevelItem (item ); 原因是因为创建一个......

k91191 ⋅ 29分钟前 ⋅ 0

使用Guava的RateLimiter做限流

场景: 1. 在日常生活中,我们肯定收到过不少不少这样的短信,“京东最新优惠卷…”,“天猫送您…”。这种类型的短信是属于推广性质的短信。这种短信一般群发量会到千万级别。然而,要完成这...

wind2012 ⋅ 30分钟前 ⋅ 0

QSlider重新enterEvent

#ifndef DIALOG_H#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QW......

xxdd ⋅ 30分钟前 ⋅ 0

生产环境redis备份与恢复

生产环境redis备份与恢复 Tyrant0532 0人评论 1563人阅读 2018-02-01 20:34:10 redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。生产中我们主...

rootliu ⋅ 32分钟前 ⋅ 0

nginx中出现403forbidden错误

nginx “403 Forbidden” 错误 出现这个错误一般是因为以下原因: 网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。 访问禁止目录浏览的目录,例:设置autoindex off后访问目录。 ...

河图再现 ⋅ 33分钟前 ⋅ 0

上海云栖:金融政企行业的CDN最佳实践

摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉宾介绍CDN的解决方案与技术服务体...

猫耳m ⋅ 38分钟前 ⋅ 0

docker 基本操作

docker介绍 Docker项目提供了构建在Linux内核功能之上,协同在一起的的高级工具。其目标是帮助开发和运维人员更容易地跨系统跨主机交付应用程序和他们的依赖。Docker通过Docker容器,一个安全...

haoyuehong ⋅ 39分钟前 ⋅ 0

上海云栖:金融政企行业的CDN最佳实践

摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉宾介绍CDN的解决方案与技术服务体...

阿里云云栖社区 ⋅ 41分钟前 ⋅ 0

安装与配置hadoop

一、CentOS7安装 java8,参考centos7.0 安装java1.8,tomcat 二、安装hadoop 版本V3.03 1、下载并解压hadoop # mkdir /usr/local/app# mkdir /usr/local/app/hadoop# cd /usr/local/app/had......

iturtle ⋅ 43分钟前 ⋅ 0

Idea设置Serializable自动生成

File --> Settings --> Editor --> Inspections ->Serialization issues,在该项下找到“Serializable class without 'serialVersionUID' ”并勾选...

Gmupload ⋅ 46分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部