"QQ API接口的设计说明书,涵盖了与QQ应用程序交互的第三方应用所需的重要信息,主要涉及注册系统消息、自定义事件以及错误码定义。该文档由深圳腾讯计算机系统有限公司编写,适用于硬件设备如USB Phone与QQ的集成。"
本文档详细介绍了QQ API接口的使用方法,以便第三方开发者能够构建与QQ应用程序兼容的应用或硬件设备。以下是关键知识点的详细说明:
1. **注册的系统消息**:
- **WM_QQAPI_REGISTER**:这是向QQ发送的注册请求消息,用于建立通信通道。
- **WM_QQAPI_REGISTER_RESP**:QQ回应注册请求的消息,包含注册结果和必要的信息。
- **WM_QQAPI_AVAILABLE**:表明QQ已准备好接收设备的消息。
2. **从设备到QQ的自定义事件**:
- **EVENT_QQAPI_SET_AUDIODEVICE**:设备通知QQ设置音频设备的事件。
- **EVENT_QQAPI_GET_USERINFO**:请求获取用户信息的事件。
- **EVENT_QQAPI_PRESS_KEY**:模拟用户按键事件,可能用于远程控制QQ功能。
- **EVENT_QQAPI_CALL**:发起通话请求的事件。
- **EVENT_QQAPI_MUTE**:控制音量静音的事件。
- **EVENT_QQAPI_UNREGISTER**:取消注册,断开与QQ的连接。
3. **从QQ到设备的自定义事件**:
- **EVENT_QQAPI_USERINFO**:QQ发送用户信息给设备的事件。
- **EVENT_QQAPI_STATUS_CHANGE**:QQ状态改变的通知,如在线、离线等。
- **EVENT_QQAPI_SHUTDOWN**:QQ即将关闭的通知,设备需做好相应处理。
4. **双向的自定义事件**:
- **EVENT_QQAPI_CALL_STATUS**:关于通话状态的双向事件,用于同步通话的进行、结束等状态。
5. **错误码定义**:
- **EVENT_QQAPI_ERROR**:当从QQ到设备发生错误时,使用此事件码传递错误信息。
6. **参数类型码表**:
说明了消息传输中使用的各种数据类型的表示方式,通常为“类型(1字节)+长度(4字节)+值”的格式,用于结构化数据的传递。
QQ API的设计基于Windows操作系统,利用`RegisterWindowMessage`注册自定义消息,并通过`WM_COPYDATA`消息来交换数据。在双方成功注册后,它们会通过各自的窗口句柄进行通信。`COPYDATASTRUCT`结构用于封装这些消息,其中`dwData`字段标识事件类型,而`lpData`字段则携带具体的数据。
这个API接口不仅允许设备模拟用户操作,如按键事件,还支持音频设备的设置、用户信息的获取以及通话功能的集成,从而为第三方设备提供了丰富的QQ功能扩展可能性。同时,错误码定义和事件响应机制确保了通信的可靠性和稳定性。开发者需要理解并正确使用这些消息和事件,才能成功地实现QQ与硬件设备的无缝交互。