WM自定義桌面"今日外掛"
在PPC、Mobile5、Mobile6中,自定義桌面快捷方式是通過“今日外掛”完成的。近日我研究了“今日外掛”的開發過程,和大家一起分享我的心得。
1.今日外掛必須以C++標準動態連結庫完成,並且必須包含匯出函式InitializeCustomItem。宣告如下:
HWND APIENTRY InitializeCustomItem(TODAYLISTITEM *ptli, HWND hWndParent)
此方法中完成的工作,類似c++ sdk開發win32窗體的過程。
2.匯出函式InitializeCustomItem的序號必須定義為240,所以必須利用def檔案宣告,我在測試過程中,因為沒有定義序號,一直沒有實現功能。估計作業系統是按序號呼叫此dll的方法。def檔案如下:
EXPORTS
InitializeCustomItem @ 240 NONAME
3. 完成dll編寫後 ,需要登錄檔中註冊:參考以下格式:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Today\Items\Topevery.TodayPlus]
"Options"=dword:00000000
"Type"=dword:00000004
"DLL"="\\Program Files\\Topevery\\Topevery.TodayPlus.Addin.dll"
"Name"="Topevery.TodayPlus"
登錄檔的內容和 函式InitializeCustomItem中的引數TODAYLISTITEM *ptli對應,你會發現TODAYLISTITEM 結構體的東西就是登錄檔的內容;
4.今日外掛相關的訊息:以WM_TODAYCUSTOM_開頭的常量
5.參考文章:
- http://www.christec.co.nz/blog/archives/275這位大牛實現了,C++ dll 結合嵌入c#窗體,動態連結庫用c++實現,介面用c#實現,通過SendMessage自定義的訊息通訊和重新整理UI。很有價值。。。。不過啟動速度比較慢。
- http://www.codeproject.com/KB/mobile/CTodayWindow.aspx封裝了很好的實現“今日外掛”的基類,很容易看懂和實現,不過有點點小缺陷,沒有實現點選和導航鍵進入時的效果。
6.程式碼不提供了,實際上,看完了上面說的2篇參考文章,絕對不會有任何問題了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21255398/viewspace-605615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mybatis 自定義外掛MyBatis
- gradle自定義外掛Gradle
- vue自定義全域性元件(或自定義外掛)Vue元件
- es 自定義分詞外掛分詞
- apisix~自定義外掛的部署API
- 自定義Gradle-Plugin 外掛GradlePlugin
- Kube-Scheduler外掛的自定義
- jQuery如何製作自定義外掛jQuery
- Cordova學習--iOS自定義外掛iOS
- Gradle自定義外掛詳解Gradle
- gulp進階-自定義gulp外掛
- 【django學習-24】自定義外掛Django
- gradle自定義任務和外掛Gradle
- APISIX Ingress 如何支援自定義外掛API
- 自定義jquery外掛簡單介紹jQuery
- jQuery自定義外掛簡單介紹jQuery
- 快速自定義Cordova外掛(-配置檔案)
- 二 阿里大模型接入:自定義外掛阿里大模型
- apisix-dashboard上新增自定義外掛API
- [-Flutter外掛篇 1-] 從自定義外掛開始說起Flutter
- iOS持續整合(三)——fastlane 自定義外掛iOSAST
- JMeter自定義取樣器外掛開發JMeter
- mybaits原始碼分析--自定義外掛(七)AI原始碼
- Apache Maven Assembly自定義打包外掛的使用ApacheMaven
- Elasticsearch實現自定義排序外掛(轉載)Elasticsearch排序
- Java整合系列:高效構建自定義外掛Java
- svelte元件:Svelte3自定義Navbar+Tabbr元件|svelte自定義外掛元件
- [外掛擴充套件]onethink自定義欄位外掛 百度地圖定位 外掛套件地圖
- ##自定義一個自動注入Log 的 外掛
- vue 自定義指令外掛升級 2.0 的坑Vue
- 使用Maven的assembly外掛實現自定義打包Maven
- Higress 基於自定義外掛訪問 RedisRedis
- Qt自定義外掛plugin的開發和呼叫QTPlugin
- 淺析MyBatis(三):聊一聊MyBatis的實用外掛與自定義外掛MyBatis
- apisix~14在自定義外掛中呼叫proxy_rewriteAPI
- [外掛擴充套件]自定義表單外掛【2015-02-28更新】套件
- 【Maven實戰技巧】「外掛使用專題」Maven-Assembly外掛實現自定義打包Maven
- 如何自定義 GNOME 3 桌面?