QQ API设计说明书 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
目录 |
参数类型码 |
长度 |
值说明 |
5 |
设备名长度 |
音频设备名,类型:以Null结尾的字符串 |
6 |
4字节 |
音频设备的设备ID号,类型:DWORD |
第三方应用程序可通过音频设备名字字符串或者通过设备ID号,来发送设置音频设备事件。
4.2 EVENT_QQAPI_GET_USERINFO
事件说明:获取QQ用户信息
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):11
lpData:NULL
cbData:0
QQ返回的用户信息,见5.1 EVENT_QQAPI_USERINFO。
4.3 EVENT_QQAPI_PRESS_KEY
事件说明:发送按键消息,当用户在设备上按下任何键时,发送此事件给QQ
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):12
lpData:如下表
cbData:消息参数总长度
参数类型码 |
长度 |
值说明 |
7 |
1字节 |
键值,详见“键值映射表” |
键值映射表:
键名 |
键值 |
0 |
0x80 |
1 |
0x81 |
2 |
0x82 |
3 |
0x83 |
4 |
0x84 |
5 |
0x85 |
6 |
0x86 |
7 |
0x87 |
8 |
0x88 |
9 |
0x89 |
Down |
0x8D |
Up |
0x8E |
Clear |
0x8F |
OK (呼叫键) |
0x91 |
Cancel (挂断键) |
0x92 |
STAR (*) |
0x93 |
SHARP (#) |
0x94 |
Mute (静音键) |
0x95 |
RINGTONG (切换铃声键) |
0x96 |
4.4 EVENT_QQAPI_CALL
事件说明:直接呼叫一个好友用户
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):13
lpData:如下表
cbData:消息参数总长度
通过QQ号呼叫:
参数类型码 |
长度 |
值说明 |
1 |
QQ号长度 |
QQ号,类型:以Null结尾的字符串 |
通过昵称呼叫:
参数类型码 |
长度 |
值说明 |
2 |
昵称长度 |
昵称,类型:以Null结尾的字符串 |
通过速播号呼叫:
参数类型码 |
长度 |
值说明 |
3 |
速播号长度 |
速播号,类型:以Null结尾的字符串 |
通过PSTN号码呼叫:
参数类型码 |
长度 |
值说明 |
4 |
PSTN号码长度 |
PSTN号码,类型:以Null结尾的字符串 |
4.5 EVENT_QQAPI_MUTE
事件说明:静音设置,根据参数决定是打开静音或者关闭静音
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):14
lpData:如下表
cbData:消息参数总长度
参数类型码 |
长度 |
值说明 |
12 |
1字节 |
静音状态标志。1:静音打开;0:静音关闭 |
4.6 EVENT_QQAPI_UNREGISTER
事件说明:反注册
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):15
lpData:NULL
cbData:0
当第三方应用程序退出时,向QQ发送此事件消息,QQ将音频设备切换回系统原有设备。
五、从QQ到设备的自定义事件
5.1 EVENT_QQAPI_USERINFO
事件说明:返回本地QQ用户信息。对应于4.2 EVENT_QQAPI_GET_USERINFO
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):16
lpData:如下表
cbData:消息参数总长度
参数类型码 |
长度 |
值说明 |
1 |
QQ号长度 |
QQ号,类型:以Null结尾的字符串 |
2 |
昵称长度 |
昵称,类型:以Null结尾的字符串 |
5.2 EVENT_QQAPI_STATUS_CHANGE
事件说明:QQ上的各种状态变化通知
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):17
lpData:如下表
cbData:消息参数总长度
状态变化类型说明:
- DIALNUM
说明:拨号时的号码变化。参数子项依次为:
参数类型码 |
长度 |
值说明 |
11 |
1字节 |
DIALNUM,状态变换类型码:1 |
1 |
QQ号长度 |
QQ号,类型:以Null结尾的字符串 |
当用户拨号,QQ在收号时,如果号码发生变换,例如用户在键盘上按一个号码,或用户在PC上按一个号码,或用户按清除键Clear,那么,QQ向第三方程序发送此事件通知。第三方程序可通过此事件通知来进行拨号过程中LCD的显示操作。
5.3 EVENT_QQAPI_SHUTDOWN
事件说明:关闭QQ应用程序
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):18
lpData:NULL
cbData:0
当QQ应用程序退出时,向第三方程序发送此事件消息。
六、双向的自定义事件
6.1 EVENT_QQAPI_CALL_STATUS
事件说明:呼叫状态通知
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):19
lpData:如下表
cbData:消息参数总长度
呼叫状态类型说明:
(1)CONNECTING
方向:从QQ到设备
说明:呼出,正在等待对方应答。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
CONNECTING,呼叫状态类型码:1 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
10 |
1字节 |
通话人数,类型:char |
1 |
QQ号长度 |
QQ号,类型:以Null结尾的字符串 |
2 |
昵称长度 |
昵称,类型:以Null结尾的字符串 |
其中,呼叫句柄为QQ分配的唯一呼叫标识符;通话人数为同时呼出的QQ个数;接下来紧跟的2个参数子项为被呼叫的QQ好友信息,如果被呼叫的QQ好友有多个,则有多个QQ好友信息。
回铃音由QQ控制播放。
(2)RING
方向:从QQ到设备
说明:呼入,振铃。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
RING,呼叫状态类型码:2 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
1 |
QQ号长度 |
QQ号,类型:以Null结尾的字符串 |
2 |
昵称长度 |
昵称,类型:以Null结尾的字符串 |
4(可选) |
PSTN号码长度 |
PSTN号码,类型:以Null结尾的字符串 |
其中,呼叫句柄为QQ分配的唯一呼叫标识符;接下来的2个参数子项为呼入QQ好友信息;最后一个参数项为可选项,呼出的PSTN号码,该号码直接由呼叫方指定,本地QQ完成呼叫转移,转到PSTN号码上。如果RINGING带了“呼出的PSTN号码”,则本地不振铃,直接转移呼出;如果RINGING没带“呼出的PSTN号码”,则本地振铃。
(3)BUSY(针对转接盒设备)
方向:双向
说明:占线。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
BUSY,呼叫状态类型码:3 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
从QQ到设备:呼出,等待对方应答,且当对方的设备被PSTN占用时,则QQ向本地设备发送占线状态。
从设备到QQ:呼入,本地振铃,且当本地设备被PSTN占用时,则本地设备向QQ发送占线状态。
(4)ACCEPT
方向:从QQ到设备
说明:呼入或呼出,某方接受,双方进入通话状态。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
ACCEPT,呼叫状态类型码:4 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
(5)REJECT
方向:从QQ到设备
说明:呼入或呼出,某方拒绝。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
REJECT,呼叫状态类型码:5 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
(6)FINISH
方向:从QQ到设备
说明:呼入或呼出,通话结束,无论哪方发起。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
FINISH,呼叫状态类型码:6 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
(7)FAIL
方向:从QQ到设备
说明:呼出失败。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
FAIL,呼叫状态类型码:7 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
失败原因可能是,呼叫的用户不是QQ好友。
(8)HOLD(针对转接盒设备)
方向:从设备到QQ
说明:暂停通话,通话被切换到PSTN。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
HOLD,呼叫状态类型码:8 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
(9)RESUME(针对转接盒设备)
方向:从设备到QQ
说明:恢复通话,通话被切换到回QQ。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
RESUME,呼叫状态类型码:9 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
(10)MUTE
方向:从QQ到设备
说明:静音状态通知。参数子项依次为:
参数类型码 |
长度 |
值说明 |
8 |
1字节 |
MUTE,呼叫状态类型码:10 |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
12 |
1字节 |
静音状态标志。1:静音打开;0:静音关闭 |
七、错误码定义
7.1 从QQ到设备――EVENT_QQAPI_ERROR
事件说明:从QQ到设备的错误通知
参数说明:WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2
dwData(事件码):20
lpData:如下表
cbData:消息参数总长度
参数类型码 |
长度 |
值说明 |
12 |
1字节 |
错误类型,类型:char |
错误码定义:
八、参数类型码表
参数类型码 |
长度 |
值说明 |
1 |
QQ号长度 |
QQ号,类型:以Null结尾的字符串 |
2 |
昵称长度 |
昵称,类型:以Null结尾的字符串 |
3 |
速播号长度 |
速播号,类型:以Null结尾的字符串 |
4 |
PSTN号码长度 |
PSTN号码,类型:以Null结尾的字符串 |
5 |
设备名长度 |
音频设备名,类型:以Null结尾的字符串 |
6 |
4字节 |
音频设备的设备ID号,类型:DWORD |
7 |
1字节 |
键值,详见4.3的“键值映射表” |
8 |
1字节 |
呼叫状态的类型,类型:char,主要有: |
9 |
4字节 |
呼叫句柄(CallHandle),类型:DWORD |
10 |
1字节 |
通话人数,类型:char |
11 |
1字节 |
状态变换的类型,类型:char,主要有: |
12 |
1字节 |
静音状态标志。1:静音打开;0:静音关闭 |
13 |
1字节 |
错误类型,类型:char |