• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            WCE下的CPL開發介紹

               WCE下的控制面板程序(CPL)與PC上的CPL開發有些許的不同,但總體上是一致的。這里總結一下在開發CPL時的思路。

               CPL文件實際上是一個DLL文件,DLL入口為CPlApplet,原型為:
            LONG CPlApplet(HWND hwndCPl,UINT  msg,LPARAM  lParam1,LPARAM  lParam2),
            將開發出來的CPL文件置于[Windows]目錄下(PC上為[Windows/system32]下),系統會自動掃描并識別,然后將其在控制面板中顯示出來(WCE中是在[Settings->System]中顯示)。

               系統會在特定的時候進入CPlApplet,這些時刻可以通過CPlApplet函數參數msg來解讀,WCE下的MSG有一下幾種:
             

            Message

            Description

            CPL_DBLCLK

            Sent to the CPlApplet function when a user taps the icon of a Control Panel application (CPL) supported by the function.

            CPL_EXIT

            Sent to the CPlApplet function before the system releases the DLL that contains the function.

            CPL_GETCOUNT

            Sent to the CPlApplet function to retrieve the number of Control Panel applications (CPLs) supported by the function.

            CPL_IDNAME

            Sent to the CPlApplet function to retrieve a Control Panel application's unique ID name string.

            CPL_INIT

            Sent to the CPlApplet function to prompt it to perform initialization for all Control Panel applications (CPLs) that it supports.

            CPL_NEWINQUIRE

            Sent to the CPlApplet function to request information about a Control Panel application (CPL) that it supports.

            CPL_STOP

            Sent to the CPlApplet function for each Control Panel application (CPL)it implements to prompt it to close down that CPL.


               CPL_DBLCLK是個很重要的消息,它表示用戶雙擊(或按了確認按鈕)了控制面板中的該程序的圖標。因此該消息處理中可以進行主窗口的啟動動作,如果窗口已經啟動,可以將窗口提前顯示。該消息返回0表示成功處理。

               CPL_EXIT消息會在CPL_STOP消息發送之后發送。可以在該消息處理中做一些清理工作。該消息返回0表示成功處理。

               CPL_GETCOUNT消息MSDN上解釋是retrieve the number of dialog boxes supported by the application,實際測試該消息的使用功能是返回數目會影響在控制面板數出現的圖標數量,如果返回2,控制面板中會出現兩個CPL的圖標。

               CPL_IDNAME消息使用到兩個另外的參數LPARAM  lParam1和LPARAM  lParam2,lParam1這里傳入CPL的全局惟一ID號,lParam2需要在處理中指向一個字符串,該字符串將用來表示CPL的ID NAME,該名稱可以與控制面板中的CPL顯示名不同。該消息返回0表示成功處理。

               CPL_INIT消息會在控制面板載入CPL后立即被觸發,可以進行一些全局內存開辟的動作。該消息返回1表示成功處理。

               CPL_NEWINQUIRE消息用來得到CPL必要的信息。lParam1傳入CPL的全局惟一ID號,lParam2指向NEWCPLINFO結構體,開發者需要對該結構體的內容進行填充。MSDN中對該消息有如下的解釋:
            The Control Panel sends the CPL_NEWINQUIRE message once for each dialog box supported by the application. The Control Panel also sends a CPL_INQUIRE message for each dialog box. These messages are sent immediately after the CPL_GETCOUNT message. However, the system does not guarantee the order in which the CPL_INQUIRE and CPL_NEWINQUIRE messages are sent.

            The CPL_NEWINQUIRE message was introduced in Windows version 3.1 as a replacement for CPL_INQUIRE. However, CPL_INQUIRE is the preferred message for Microsoft Windows 95 and Microsoft Windows NT® version 4.0. This is because CPL_NEWINQUIRE returns information in a form that the system cannot cache. Consequently, applications that process CPL_NEWINQUIRE must be loaded each time the Control Panel needs the information, resulting in a significant reduction in performance.

            該消息返回0表示成功處理。

               CPL_STOP消息會在用戶關閉了CPL主窗口時被調用,該消息返回0表示成功處理。

               從上述消息介紹中可以看出,返回值很重要。如果返回值不正確,可能發生意想不到的后果。
               
               PS: 與之類似的,WCE下的Service程序開發,XXX_系列接口函數的返回值也很重要,需要重視。

            posted on 2008-05-26 10:15 迷宮の未來 閱讀(1676) 評論(0)  編輯 收藏 引用

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆檔案

            文章檔案

            最新隨筆

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品国产亚洲av麻豆色欲| 青青青国产精品国产精品久久久久 | 国产精品成人久久久| 久久精品久久久久观看99水蜜桃| 久久这里只精品99re66| 国内精品久久久久久99蜜桃 | 久久天堂电影网| 久久久噜噜噜久久中文字幕色伊伊| 国产香蕉久久精品综合网| 国内精品伊人久久久久av一坑| 久久久久国产精品嫩草影院 | 国产精品9999久久久久| 久久亚洲中文字幕精品一区| 久久精品国产亚洲av高清漫画| 国产高潮国产高潮久久久91 | 久久久久99精品成人片牛牛影视| 亚洲AV无码久久精品色欲 | 久久人与动人物a级毛片| 精品久久久久久中文字幕| 伊人久久大香线蕉无码麻豆| 婷婷久久综合九色综合98| 中文字幕人妻色偷偷久久| 久久一区二区三区99| 精品久久人人做人人爽综合| 久久精品欧美日韩精品| 久久狠狠爱亚洲综合影院| 久久久精品久久久久久| 99久久精品免费| 国产精品久久久久久久| 久久天堂AV综合合色蜜桃网| 久久国产欧美日韩精品| 久久精品国产免费观看| 久久精品国产久精国产果冻传媒 | 99精品久久精品一区二区| 国产香蕉久久精品综合网| 久久人人添人人爽添人人片牛牛| 欧美一级久久久久久久大片| 亚洲精品国精品久久99热| 欧美久久亚洲精品| 欧美激情一区二区久久久| 伊人精品久久久久7777|