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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- gradle自定義外掛Gradle
- mybatis 自定義外掛MyBatis
- vue自定義全域性元件(或自定義外掛)Vue元件
- 自定義Gradle-Plugin 外掛GradlePlugin
- apisix~自定義外掛的部署API
- es 自定義分詞外掛分詞
- Cordova學習--iOS自定義外掛iOS
- 【django學習-24】自定義外掛Django
- gradle自定義任務和外掛Gradle
- Kube-Scheduler外掛的自定義
- APISIX Ingress 如何支援自定義外掛API
- 快速自定義Cordova外掛(-配置檔案)
- apisix-dashboard上新增自定義外掛API
- 二 阿里大模型接入:自定義外掛阿里大模型
- mybaits原始碼分析--自定義外掛(七)AI原始碼
- [-Flutter外掛篇 1-] 從自定義外掛開始說起Flutter
- [外掛擴充套件]onethink自定義欄位外掛 百度地圖定位 外掛套件地圖
- svelte元件:Svelte3自定義Navbar+Tabbr元件|svelte自定義外掛元件
- iOS持續整合(三)——fastlane 自定義外掛iOSAST
- Higress 基於自定義外掛訪問 RedisRedis
- Java整合系列:高效構建自定義外掛Java
- Apache Maven Assembly自定義打包外掛的使用ApacheMaven
- JMeter自定義取樣器外掛開發JMeter
- [外掛擴充套件]自定義表單外掛【2015-02-28更新】套件
- ##自定義一個自動注入Log 的 外掛
- Qt自定義外掛plugin的開發和呼叫QTPlugin
- IDEA Web渲染外掛開發(二)— 自定義JsDialogIdeaWebJS
- Custom Post Types [2.1.14] - WordPress高階自定義外掛
- 淺析MyBatis(三):聊一聊MyBatis的實用外掛與自定義外掛MyBatis
- flutter: SharedPreferences桌面外掛Flutter
- apisix~14在自定義外掛中呼叫proxy_rewriteAPI
- Gradle理論與實踐四:自定義Gradle外掛Gradle
- 【Maven實戰技巧】「外掛使用專題」Maven-Assembly外掛實現自定義打包Maven
- 如何自定義 GNOME 3 桌面?
- 使用 FVWM 自定義 Linux 桌面Linux
- 5分鐘教你使用idea除錯SeaTunnel自定義外掛Idea除錯
- 自定義Mybatis-plus外掛(限制最大查詢數量)MyBatis
- apisix~為自定義外掛設計一個configmap指令碼API指令碼
- Vue2自定義外掛的寫法-Vue.use()Vue