QQ API

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應用程序和第三方應用程序以收發消息的方式進行通訊。雙方未成功注冊之前,采用RegisterWindowMessage(Windows API)注冊的系統消息進行交互,注冊成功后,雙方分別獲取對方的窗口句柄,接下來的交互通過收發WM_COPYDATA(Windows消息)消息完成。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:發送方的窗口句柄lParam:QQ API版本號,目前為100,表示1.00。第三方應用程序啟動并檢測到可用的設備后,向所有Windows窗口廣播這個消息,帶上自己的窗口句柄作為消息參數,如下:SendMessage( HWND_BROADCAST, WM_QQAPI_REGISTER, 發送端窗口句柄, 0);當QQ收到這個消息時,彈出“外設控制”窗口等待用戶選擇,如下: 3.2 WM_QQAPI_REGISTER_RESP消息名:注冊回復消息方向:QQ?設備wParam:值如下:WAITING(1):等待用戶選擇OK(2):用戶選擇“允許使用”REJECT(3):用戶選擇“禁止使用”lParam:當wParam為OK(2)時,lParam為QQ應用程序的窗口句柄。當用戶選擇“禁止使用”之后,如果第三方應用程序再次發送WM_QQAPI_REGISTER消息,QQ不再彈出“QQ安全警告”框,直接返回REJECT的WM_QQAPI_REGISTER_RESP消息,直到QQ程序重新啟動為止。3.3 WM_QQAPI_AVAILABLE消息名:QQ API可用消息方向:QQ?設備wParam:發送方的窗口句柄,即QQ程序的窗口句柄lParam:QQ 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(事件碼):11lpData:NULLcbData:0QQ返回的用戶信息,見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(事件碼):15lpData:NULLcbData:0當第三方應用程序退出時,向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(事件碼):18lpData:NULLcbData:0當QQ應用程序退出時,向第三方程序發送此事件消息。六、雙向的自定義事件6.1 EVENT_QQAPI_CALL_STATUS事件說明:呼叫狀態通知參數說明:WM_COPYDATA中的參數COPYDATASTRUCT結構說明詳見2dwData(事件碼):19lpData:如下表cbData:消息參數總長度呼叫狀態類型說明:(1)CONNECTING方向:從QQ到設備說明:呼出,正在等待對方應答。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? CONNECTING,呼叫狀態類型碼:19??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD10??? 1字節??? 通話人數,類型:char1??? QQ號長度??? QQ號,類型:以Null結尾的字符串2??? 昵稱長度??? 昵稱,類型:以Null結尾的字符串其中,呼叫句柄為QQ分配的唯一呼叫標識符;通話人數為同時呼出的QQ個數;接下來緊跟的2個參數子項為被呼叫的QQ好友信息,如果被呼叫的QQ好友有多個,則有多個QQ好友信息。回鈴音由QQ控制播放。(2)RING方向:從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號碼”,則本地振鈴。(3)BUSY(針對轉接盒設備)方向:雙向說明:占線。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? BUSY,呼叫狀態類型碼:39??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD從QQ到設備:呼出,等待對方應答,且當對方的設備被PSTN占用時,則QQ向本地設備發送占線狀態。從設備到QQ:呼入,本地振鈴,且當本地設備被PSTN占用時,則本地設備向QQ發送占線狀態。(4)ACCEPT方向:從QQ到設備說明:呼入或呼出,某方接受,雙方進入通話狀態。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? ACCEPT,呼叫狀態類型碼:49??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD (5)REJECT方向:從QQ到設備說明:呼入或呼出,某方拒絕。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? REJECT,呼叫狀態類型碼:59??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD (6)FINISH方向:從QQ到設備說明:呼入或呼出,通話結束,無論哪方發起。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? FINISH,呼叫狀態類型碼:69??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD (7)FAIL方向:從QQ到設備說明:呼出失敗。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? FAIL,呼叫狀態類型碼:79??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD失敗原因可能是,呼叫的用戶不是QQ好友。(8)HOLD(針對轉接盒設備)方向:從設備到QQ說明:暫停通話,通話被切換到PSTN。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? HOLD,呼叫狀態類型碼:89??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD (9)RESUME(針對轉接盒設備)方向:從設備到QQ說明:恢復通話,通話被切換到回QQ。參數子項依次為:參數類型碼??? 長度??? 值說明8??? 1字節??? RESUME,呼叫狀態類型碼:99??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD (10)MUTE方向:從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,主要有:(1)CONNECTING,呼叫狀態類型碼:1(2)RING,呼叫狀態類型碼:2(3)BUSY,呼叫狀態類型碼:3(4)ACCEPT,呼叫狀態類型碼:4(5)REJECT,呼叫狀態類型碼:5(6)FINISH,呼叫狀態類型碼:6(7)FAIL,呼叫狀態類型碼:7(8)HOLD,呼叫狀態類型碼:8(9)RESUME,呼叫狀態類型碼:9(10)MUTE,呼叫狀態類型碼:109??? 4字節??? 呼叫句柄(CallHandle),類型:DWORD10??? 1字節??? 通話人數,類型:char注:通話人數會影響后續的參數子項,例如當通話人數為2,后面會跟兩份的QQ用戶信息。11??? 1字節??? 狀態變換的類型,類型:char,主要有:(1)DIALNUM,狀態變換類型碼:112??? 1字節??? 靜音狀態標志。1:靜音打開;0:靜音關閉13??? 1字節??? 錯誤類型,類型:char文章引用自:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389188.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389188.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389188.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu 18.04 下如何配置mysql 及 配置遠程連接

首先是大家都知道的老三套,啥也不說上來就放三個大招: sudo apt-get install mysql-serversudo apt isntall mysql-clientsudo apt install libmysqlclient-dev 這三步下來mysql就裝好了,然后我們偷偷檢查一下 sudo netstat -tap | grep mysq…

數據科學與大數據技術的案例_主數據科學案例研究,招聘經理的觀點

數據科學與大數據技術的案例I’ve been in that situation where I got a bunch of data science case studies from different companies and I had to figure out what the problem was, what to do to solve it and what to focus on. Conversely, I’ve also designed case…

導致View樹遍歷的時機

遍歷View樹意味著整個View需要重新對其包含的子視圖分配大小并重繪,導致重新遍歷的原因主要有三個 1.視圖本身內部狀況變化引起重繪。 2.第二個是View樹內部添加或者刪除了View。 3.View本身的大小及可見性發生變化。 能引起View樹重新遍歷的操作,總…

什么是Hyperledger?Linux如何圍繞英特爾的區塊鏈項目構建開放平臺?

訪問區塊鏈會議并關注區塊鏈新聞時,不可避免地,您會遇到Linux基金會的Hyperledger。理解像比特幣、以太坊這樣的加密貨幣還算相對容易的,Hyperledger卻不然。但如果你多研究研究,你會發現一些令人興奮的非貨幣、工業區塊鏈的應用項…

隊列的鏈式存儲結構及其實現_了解隊列數據結構及其實現

隊列的鏈式存儲結構及其實現A queue is a collection of items whereby its operations work in a FIFO — First In First Out manner. The two primary operations associated with them are enqueue and dequeue.隊列是項目的集合,由此其操作以FIFO(先進先出)的方…

安裝

、添加一個新項目->選擇類庫模板->命名為DBCustomAction 2、單擊項目右鍵->添加新項->選擇安裝程序類(命名為DBCustomAction.cs) 3、在 服務器資源管理器中添加->連接到 數據庫->指定用戶密碼(選擇允許保存密碼)-> 數據庫選擇master 4、切換到DBCustomAct…

cad2016珊瑚_預測有馬的硬珊瑚覆蓋率

cad2016珊瑚What’s the future of the world’s coral reefs?世界珊瑚礁的未來是什么? In February of 2020, scientists at University of Hawaii Manoa released a study addressing this very question. The models they developed forecasted a 70–90% worl…

EChart中使用地圖方式總結(轉載)

EChart中使用地圖方式總結 2018年02月06日 22:18:57 來源:https://blog.csdn.net/shaxiaozilove/article/details/79274772最近在仿照EChart公交線路方向示例,開發表示排水網和污水網流向地圖,同時地圖上需要疊加排放口、污染源、污水處理廠等…

android mvp模式

越來越多人討論mvp模式,mvp在android應用開發中獲得更多的重視,這里說一下對MVP的簡單了解。 什么是 MVP? MVP模式使邏輯從視圖層分開,目的是我們在屏幕上怎么表現,和界面如何工作的所有事情就完全分開了。 View顯示數據&…

Node.js REPL(交互式解釋器)

2019獨角獸企業重金招聘Python工程師標準>>> Node.js REPL(交互式解釋器) Node.js REPL(Read Eval Print Loop:交互式解釋器) 表示一個電腦的環境,類似 Window 系統的終端或 Unix/Linux shell,我們可以在終端中輸入命令,并接收系統…

中國移動短信網關CMPP3.0 C#源代碼:使用示例

中國移動短信網關CMPP3.0 C#源代碼:使用示例 中國移動短信網關CMPP3.0 C#源代碼使用,在上一篇文章中我介紹過cmpp3.0,這段時間因為也做關于移動短信網關的開發,在這里給大家一個演示如何使用cmpp3.0開發移動短信網關。Using Tiray.SMS... Ti…

用python進行營銷分析_用python進行covid 19分析

用python進行營銷分析Python is a highly powerful general purpose programming language which can be easily learned and provides data scientists a wide variety of tools and packages. Amid this pandemic period, I decided to do an analysis on this novel coronav…

名稱

命名規則:Go中函數、變量、常量、類型、語句標簽和包的名稱都遵循一個規則,開頭是一個字母或下劃線,后面跟任意字符、數字和下劃線,并區分大小寫。例如:heapSort和HeapSort是不同名稱。關鍵字:Go有25個關鍵…

Alpha沖刺第二天

Alpha第二天 1.團隊成員 鄭西坤 031602542 (隊長) 陳俊杰 031602504陳順興 031602505張勝男 031602540廖鈺萍 031602323雷光游 031602319蘇芳锃 0316023302.項目燃盡圖 3.項目進展 時間工作內容11月18日UI設計、初步架構搭建11月19日UI設計、服務器的進一…

Tiray.SMSTiray.SMSTiray.SMSTiray.SMSTiray.SMSTiray.SMS

這是2005年6月云南移動短信網關升級到3.0時寫的,在SP那穩定運行了很長時間的。因為SP倒閉了,貼出來給有興趣的朋友參考。優點:支持多線程、滑動窗口、異步發送、全事件模式、自動識別ASCII、GBK、UCS-2缺點:不支持長短信自動分頁、…

水文分析提取河網_基于圖的河網段地理信息分析排序算法

水文分析提取河網The topic of this article is the application of information technologies in environmental science, namely, in hydrology. Below is a description of the algorithm for ranking rivers and the plugin we implemented for the open-source geographic…

請不要更多的基本情節

“If I see one more basic blue bar plot…”“如果我再看到一個基本的藍色條形圖……” After completing the first module in my studies at Flatiron School NYC, I started playing with plot customizations and design using Seaborn and Matplotlib. Much like doodl…

Powershell-獲取DHCP地址租用信息

需求&#xff1a;業務需要獲取現階段DHCP服務器所有地址租用信息。 1.首先查看DHCP相關幫助信息&#xff1a;2.確定執行命令并獲取相關幫助信息&#xff1a;help Get-DhcpServerv4Scope 名稱 Get-DhcpServerv4Scope 語法 Get-DhcpServerv4Scope [[-ScopeId] <ipaddress[]>…

c# 對COM+對象反射調用時地址參數處理 c# 對COM+對象反射調用時地址參數處理

使用反射的方式調用組件里面的方法&#xff0c;經常會遇見一些象地址參數的處理&#xff0c;在C#中表現為ref參數&#xff0c;比如用C#寫了一個裝配件&#xff0c;里面有一個方法openProcedure(string ProcName,int paraCount,ref string[] parameters)&#xff0c;最后有一個r…

android觸摸消息的派發過程

1.觸摸消息是消息獲取模塊直接派發給應用程序的。 2.觸摸消息在處理時&#xff0c; 需要根據觸摸坐標計算該消息應該派發給哪個View/ViewGroup, 在案件取消處理中不存在 該計算過程。 3.沒有類似”系統按鍵”的”系統觸摸鍵”&#xff0c; 應用程序可完全控制觸摸行為。 4.子…