义乌高端网站设计品牌,建设一个网站的费用,flash教程自学网,卡车行业做网站的用途QQ API设计说明书目录一、引言 31.1 编写目的 31.2 更新时间 3二、总体设计 3三、注册的系统消息 33.1 WM_QQAPI_REGISTER 33.2 WM_QQAPI_REGISTER_RESP 43.3 WM_QQAPI_AVAILABLE 4四、从设备到QQ的自定义事件 54.1 EVENT_QQAPI_SET_AUDIODEVICE …QQ API设计说明书目录一、引言 31.1 编写目的 31.2 更新时间 3二、总体设计 3三、注册的系统消息 33.1 WM_QQAPI_REGISTER 33.2 WM_QQAPI_REGISTER_RESP 43.3 WM_QQAPI_AVAILABLE 4四、从设备到QQ的自定义事件 54.1 EVENT_QQAPI_SET_AUDIODEVICE 54.2 EVENT_QQAPI_GET_USERINFO 54.3 EVENT_QQAPI_PRESS_KEY 54.4 EVENT_QQAPI_CALL 64.5 EVENT_QQAPI_MUTE 64.6 EVENT_QQAPI_UNREGISTER 7五、从QQ到设备的自定义事件 75.1 EVENT_QQAPI_USERINFO 75.2 EVENT_QQAPI_STATUS_CHANGE 75.3 EVENT_QQAPI_SHUTDOWN 8六、双向的自定义事件 86.1 EVENT_QQAPI_CALL_STATUS 8七、错误码定义 107.1 从QQ到设备――EVENT_QQAPI_ERROR 10八、参数类型码表 11 一、引言1.1 编写目的本文档提供了QQ API接口说明以供第三方应用程序使用用于QQ和硬件设备例如USB Phone的交互。1.2 更新时间最后修订日期2005-05-24版本号v1.0二、总体设计QQ应用程序和第三方应用程序以收发消息的方式进行通讯。双方未成功注册之前采用RegisterWindowMessageWindows API注册的系统消息进行交互注册成功后双方分别获取对方的窗口句柄接下来的交互通过收发WM_COPYDATAWindows消息消息完成。WM_COPYDATA的wParam参数为发送方的窗口句柄lParam为指向COPYDATASTRUCT结构的指针COPYDATASTRUCT定义如下typedef struct tagCOPYDATASTRUCT{ ULONG_PTR dwData; DWORD cbData; PVOID lpData;}COPYDATASTRUCT, *PCOPYDATASTRUCT;dwData事件码标示传送的消息事件码lpData消息参数采用多个相连的“类型1字节长度4字节值”的格式。所有的参数类型码表见8 参数类型码表cbData消息参数总长度单位字节三、注册的系统消息第三方程序使用Windows SDK――RegisterWindowMessage进行下列系统消息的注册。例如RegisterWindowMessage(“WM_QQAPI_REGISTER”);3.1 WM_QQAPI_REGISTER消息名注册消息方向设备?QQwParam发送方的窗口句柄lParamQQ API版本号目前为100表示1.00。第三方应用程序启动并检测到可用的设备后向所有Windows窗口广播这个消息带上自己的窗口句柄作为消息参数如下SendMessage( HWND_BROADCAST, WM_QQAPI_REGISTER, 发送端窗口句柄, 0);当QQ收到这个消息时弹出“外设控制”窗口等待用户选择如下 3.2 WM_QQAPI_REGISTER_RESP消息名注册回复消息方向QQ?设备wParam值如下WAITING1等待用户选择OK2用户选择“允许使用”REJECT3用户选择“禁止使用”lParam当wParam为OK2时lParam为QQ应用程序的窗口句柄。当用户选择“禁止使用”之后如果第三方应用程序再次发送WM_QQAPI_REGISTER消息QQ不再弹出“QQ安全警告”框直接返回REJECT的WM_QQAPI_REGISTER_RESP消息直到QQ程序重新启动为止。3.3 WM_QQAPI_AVAILABLE消息名QQ API可用消息方向QQ?设备wParam发送方的窗口句柄即QQ程序的窗口句柄lParamQQ API版本号目前为1当QQ启动后向所有Windows窗口广播这个消息SendMessage( HWND_BROADCAST, WM_QQAPI_AVAILABLE, QQ窗口句柄, 0);当第三方应用程序收到这个消息时再发起WM_QQAPI_REGISTER消息进行注册。这种情况出现在当第三方应用程序先启动而QQ程序后启动的情况下。四、从设备到QQ的自定义事件4.1 EVENT_QQAPI_SET_AUDIODEVICE事件说明设置QQ使用的音频设备参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码10lpData如下表cbData消息参数总长度参数类型码 长度 值说明5 设备名长度 音频设备名类型以Null结尾的字符串6 4字节 音频设备的设备ID号类型DWORD第三方应用程序可通过音频设备名字字符串或者通过设备ID号来发送设置音频设备事件。4.2 EVENT_QQAPI_GET_USERINFO事件说明获取QQ用户信息参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码11lpDataNULLcbData0QQ返回的用户信息见5.1 EVENT_QQAPI_USERINFO。4.3 EVENT_QQAPI_PRESS_KEY事件说明发送按键消息当用户在设备上按下任何键时发送此事件给QQ参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码12lpData如下表cbData消息参数总长度参数类型码 长度 值说明7 1字节 键值详见“键值映射表” 键值映射表键名 键值0 0x801 0x812 0x823 0x834 0x845 0x856 0x867 0x878 0x889 0x89Down 0x8DUp 0x8EClear 0x8FOK (呼叫键) 0x91Cancel (挂断键) 0x92STAR (*) 0x93SHARP (#) 0x94Mute (静音键) 0x95RINGTONG (切换铃声键) 0x964.4 EVENT_QQAPI_CALL事件说明直接呼叫一个好友用户参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码13lpData如下表cbData消息参数总长度通过QQ号呼叫参数类型码 长度 值说明1 QQ号长度 QQ号类型以Null结尾的字符串通过昵称呼叫参数类型码 长度 值说明2 昵称长度 昵称类型以Null结尾的字符串通过速播号呼叫参数类型码 长度 值说明3 速播号长度 速播号类型以Null结尾的字符串通过PSTN号码呼叫参数类型码 长度 值说明4 PSTN号码长度 PSTN号码类型以Null结尾的字符串4.5 EVENT_QQAPI_MUTE事件说明静音设置根据参数决定是打开静音或者关闭静音参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码14lpData如下表cbData消息参数总长度参数类型码 长度 值说明12 1字节 静音状态标志。1静音打开0静音关闭4.6 EVENT_QQAPI_UNREGISTER事件说明反注册参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码15lpDataNULLcbData0当第三方应用程序退出时向QQ发送此事件消息QQ将音频设备切换回系统原有设备。五、从QQ到设备的自定义事件5.1 EVENT_QQAPI_USERINFO事件说明返回本地QQ用户信息。对应于4.2 EVENT_QQAPI_GET_USERINFO参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码16lpData如下表cbData消息参数总长度参数类型码 长度 值说明1 QQ号长度 QQ号类型以Null结尾的字符串2 昵称长度 昵称类型以Null结尾的字符串5.2 EVENT_QQAPI_STATUS_CHANGE事件说明QQ上的各种状态变化通知参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码17lpData如下表cbData消息参数总长度状态变化类型说明1 DIALNUM说明拨号时的号码变化。参数子项依次为参数类型码 长度 值说明11 1字节 DIALNUM状态变换类型码11 QQ号长度 QQ号类型以Null结尾的字符串当用户拨号QQ在收号时如果号码发生变换例如用户在键盘上按一个号码或用户在PC上按一个号码或用户按清除键Clear那么QQ向第三方程序发送此事件通知。第三方程序可通过此事件通知来进行拨号过程中LCD的显示操作。5.3 EVENT_QQAPI_SHUTDOWN事件说明关闭QQ应用程序参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码18lpDataNULLcbData0当QQ应用程序退出时向第三方程序发送此事件消息。六、双向的自定义事件6.1 EVENT_QQAPI_CALL_STATUS事件说明呼叫状态通知参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码19lpData如下表cbData消息参数总长度呼叫状态类型说明1CONNECTING方向从QQ到设备说明呼出正在等待对方应答。参数子项依次为参数类型码 长度 值说明8 1字节 CONNECTING呼叫状态类型码19 4字节 呼叫句柄CallHandle类型DWORD10 1字节 通话人数类型char1 QQ号长度 QQ号类型以Null结尾的字符串2 昵称长度 昵称类型以Null结尾的字符串其中呼叫句柄为QQ分配的唯一呼叫标识符通话人数为同时呼出的QQ个数接下来紧跟的2个参数子项为被呼叫的QQ好友信息如果被呼叫的QQ好友有多个则有多个QQ好友信息。回铃音由QQ控制播放。2RING方向从QQ到设备说明呼入振铃。参数子项依次为参数类型码 长度 值说明8 1字节 RING呼叫状态类型码29 4字节 呼叫句柄CallHandle类型DWORD1 QQ号长度 QQ号类型以Null结尾的字符串2 昵称长度 昵称类型以Null结尾的字符串4可选 PSTN号码长度 PSTN号码类型以Null结尾的字符串其中呼叫句柄为QQ分配的唯一呼叫标识符接下来的2个参数子项为呼入QQ好友信息最后一个参数项为可选项呼出的PSTN号码该号码直接由呼叫方指定本地QQ完成呼叫转移转到PSTN号码上。如果RINGING带了“呼出的PSTN号码”则本地不振铃直接转移呼出如果RINGING没带“呼出的PSTN号码”则本地振铃。3BUSY针对转接盒设备方向双向说明占线。参数子项依次为参数类型码 长度 值说明8 1字节 BUSY呼叫状态类型码39 4字节 呼叫句柄CallHandle类型DWORD从QQ到设备呼出等待对方应答且当对方的设备被PSTN占用时则QQ向本地设备发送占线状态。从设备到QQ呼入本地振铃且当本地设备被PSTN占用时则本地设备向QQ发送占线状态。4ACCEPT方向从QQ到设备说明呼入或呼出某方接受双方进入通话状态。参数子项依次为参数类型码 长度 值说明8 1字节 ACCEPT呼叫状态类型码49 4字节 呼叫句柄CallHandle类型DWORD 5REJECT方向从QQ到设备说明呼入或呼出某方拒绝。参数子项依次为参数类型码 长度 值说明8 1字节 REJECT呼叫状态类型码59 4字节 呼叫句柄CallHandle类型DWORD 6FINISH方向从QQ到设备说明呼入或呼出通话结束无论哪方发起。参数子项依次为参数类型码 长度 值说明8 1字节 FINISH呼叫状态类型码69 4字节 呼叫句柄CallHandle类型DWORD 7FAIL方向从QQ到设备说明呼出失败。参数子项依次为参数类型码 长度 值说明8 1字节 FAIL呼叫状态类型码79 4字节 呼叫句柄CallHandle类型DWORD失败原因可能是呼叫的用户不是QQ好友。8HOLD针对转接盒设备方向从设备到QQ说明暂停通话通话被切换到PSTN。参数子项依次为参数类型码 长度 值说明8 1字节 HOLD呼叫状态类型码89 4字节 呼叫句柄CallHandle类型DWORD 9RESUME针对转接盒设备方向从设备到QQ说明恢复通话通话被切换到回QQ。参数子项依次为参数类型码 长度 值说明8 1字节 RESUME呼叫状态类型码99 4字节 呼叫句柄CallHandle类型DWORD 10MUTE方向从QQ到设备说明静音状态通知。参数子项依次为参数类型码 长度 值说明8 1字节 MUTE呼叫状态类型码109 4字节 呼叫句柄CallHandle类型DWORD12 1字节 静音状态标志。1静音打开0静音关闭七、错误码定义7.1 从QQ到设备――EVENT_QQAPI_ERROR事件说明从QQ到设备的错误通知参数说明WM_COPYDATA中的参数COPYDATASTRUCT结构说明详见2dwData事件码20lpData如下表cbData消息参数总长度参数类型码 长度 值说明12 1字节 错误类型类型char错误码定义八、参数类型码表参数类型码 长度 值说明1 QQ号长度 QQ号类型以Null结尾的字符串2 昵称长度 昵称类型以Null结尾的字符串3 速播号长度 速播号类型以Null结尾的字符串4 PSTN号码长度 PSTN号码类型以Null结尾的字符串5 设备名长度 音频设备名类型以Null结尾的字符串6 4字节 音频设备的设备ID号类型DWORD7 1字节 键值详见4.3的“键值映射表”8 1字节 呼叫状态的类型类型char主要有1CONNECTING呼叫状态类型码12RING呼叫状态类型码23BUSY呼叫状态类型码34ACCEPT呼叫状态类型码45REJECT呼叫状态类型码56FINISH呼叫状态类型码67FAIL呼叫状态类型码78HOLD呼叫状态类型码89RESUME呼叫状态类型码910MUTE呼叫状态类型码109 4字节 呼叫句柄CallHandle类型DWORD10 1字节 通话人数类型char注通话人数会影响后续的参数子项例如当通话人数为2后面会跟两份的QQ用户信息。11 1字节 状态变换的类型类型char主要有1DIALNUM状态变换类型码112 1字节 静音状态标志。1静音打开0静音关闭13 1字节 错误类型类型char文章引用自