- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WINCE60在控制面板添加控制面板应用程序
WINCE6.0在控制面板添加控制面板应用程序
WINCE控制面板架构
WINCE系统的控制面板提供的应用是基于windows桌面系统下应用的小子集,在WINCE系统中,控制面板系统由三部分组成,分别是Ctlpnl.exe、Control.exe和一些控制面板文件(.cpl)。Ctlpnl.exe和Control.exe相应地被操作系统用于控制控制面板文件夹显示和机构,这两部分构成控制面板系统架构的最根本部分,而那些.cpl文件对应于控制面板功能的应用。如果要创建子集的控制面板应用,我们必须创建一个.cpl文件,这个文件导出适合于Control.exe建立的架构的回调函数
一个控制面板应用程序实际是一个dll,但它的扩展名是.cpl的文件,这个文件导出回调函数CPlApplet来处理控制面板系统发送过来的CPL_INIT、CPL_GETCOUNT、CPL_NEWINQURE、CPL_STOP|和CPL_EXIT消息,在处理这些消息的时候可以只直接调用某个.exe来执行相应的应用,也可以是直接的处理。当用户打开控制面板的时候,OS通过搜索位于“\Windows”目录下面的.cpl文件来列举出控制面板系统下的控制面板应用,比如我们当前的系统中有下面的.cpl:
图1
我双击“控制面板”图标进入控制面板的时候,输出下面的出错提示信息:
CPL: Failed to load \Windows\system.cpl
说明加载system.cpl失败,而我在系统中添加自己的应用HelloCPL.cpl的系统中,在双击“控制面板”的时候,也相应的提示下面的信息:
CPL: Failed to load \Windows\HelloCPL.cpl
后来在HelloCPL.文件中加入下面的内容才成功加载HelloCPL.cpl的
LIBRARY HelloCPL
EXPORTS
CPlApplet
可以在WINCE600的目录下没有找到生成system.cpl的地方,只在下面的目录中
\WINCE600\PUBLIC\DATASYNC\OAK\CTLPANEL\SYSTEM找到生成systemcpl.cpl的源代码所在地方,但其导出函数为KillAllApps,并且为空函数,所以在控制面板下是看不到此控制面板应用程序对应的图标。
CTLPNL文件夹中有九个文件夹,分别对应不同的CPL文件:
ADVBACKLIGHT:高级背光灯管理。
BTHPNL:蓝牙。
CONNPNL:拨号网络。
CONTROL:主控制台,我们在explorer中看到的控制面板应该就是这个。
CPLMAIN:会生成cplmain.cpl,控制面板的大多数选项均源自于此。
CTLPNL:和CONTROL相关联的
DMPNL:对应设备管理器。
INTL2:区域和语言设置。
STGUI:存储???管理。
图2
控制面板应用程序的入口和导出函数
入口函数DllMain
因为.cpl文件实际就是dll,而dll的入口函数是DllMain,所以控制面板应用程序的入口函数是DllMain也就很自然的事情了。在进程和现场被初始化和终止的时候,系统会调用这个函数,或者在调用LoadLibrary()和FreeLibrary()函数的时候会调用这个入口函数。
DllMai函数在这里的作用主要是保存好传递进来的指向DLL的句柄,以便后面使用。
.def函数要导出的回调函数CPlApplet
LONG CPlApplet(HWND hwndCPl, UINT msg, LPARAM lParam1, LPARAM lParam2)
hwndCPl:控制面板窗口的句柄
msg:发给控制面应用程序的消息?
WinCE中所支持的控制面板消息如下:
CPL_INIT:被首次加载的时候会收到该消息,也是第一个消息,控制面板应用程序接收到该消息后会立刻执行全局变量的初始化,尤其是内存的分配的动作也在这里执行。
CPL_GETCOUNT:第二个被收到的消息,该消息用于获得该控制面板应用程序中的组件数,因为.cpl文件中可能包含多个Applet程序,比如cplmain.cpl中就有十几个Applent程序,见图2。
CPL_NEWINQUIRE:查询当前控制面板程序支持的对话框(dialog box)信息,如果该.cpl中包含多个对话框,那么lParam1表示对话框号,lParam2是一个指向NEWCPLINFO结构的指针,描述的是一个对话框的相关信息,见图2,connpnl.cpl中有14个组件,比如“笔针”就是其支持的一个对话框,我们在双击“笔针”图标的时候,串口输出下面的信息:
CTLPNL: cmdline=\Windows\cplmain.cpl,9
---CTLPNL: CPL=\Windo
您可能关注的文档
- Verilog课程设计2.doc
- VGA光端机(必扬光电)非压缩无延时.doc
- VFP程序设计复习题集200601103.doc
- VIII区域植保组织间技术磋商会2010-2012年工作计划-IPPC.doc
- VFS在建筑室内中阳光玻璃的表现力.doc
- VHDL实验报告8-3优先编码器(哦).doc
- VEPA相关技术分析报告-项目S15.doc
- VFP实验医院管理系统(有详细的步骤).docx
- VGM-VERIFIEDGROSSMASS解决方案.doc
- visual+c2B2B+mfc+简明教程.doc
- 2024年四川省骨科医院招聘30名优秀博士人才笔试备考题库及答案解析.docx
- 2024年四川遂宁市大学生乡村医生专项计划招聘15人笔试备考题库及答案解析.docx
- 2024年宿州灵璧县招聘事业单位60人笔试备考题库及答案解析.docx
- 2024年潍坊奎兴人才发展有限公司公开招聘医疗辅助人员笔试备考题库及答案解析.docx
- 2024年四川绵阳市涪城区大学生乡村医生专项招聘1人笔试备考题库及答案解析.docx
- 2024年双鸭山宝清县高学历人才引进49人笔试备考题库及答案解析.docx
- 2024福建三明永安市交通发展集团有限公司校园招聘4人笔试备考题库及答案解析.docx
- 2024福建福州市中医院招聘编外9人笔试备考题库及答案解析.docx
- 2024年衢州江山市急救中心公开招聘编外人员的笔试备考题库及答案解析.docx
- 2024年秋季山西大同市广灵县校园招聘医务人员30名笔试备考题库及答案解析.docx
文档评论(0)