详解WINCE的控制面板

XOX客所思声卡控制面板3.0(适用于PK3) 客所思PK3声卡,P配备了KX系列产品所具备的硬件音效模块,可以和KX系列产品一样的使用音乐模式、聊天模式、唱歌模式、听湿录干模式、喊麦模式,在新增的软件音效模式中,硬件音效模块被禁用,只可使用软件音效平台。 立即下载
  曾经在我的一篇《控制面板的创建》中介绍过WinCE控制面板的结构,不过由于那篇文章其目的只在于控制面板如何调用EXE程序,故对控制面板也仅是泛泛而谈.不过在这篇文章中,我们将对WinCE的使用方法来个整体的详解.
1.控制面板的结构
        控制面板其实也是个动态链接库,区别只在于后缀名为.cpl,以及对外接口为CPlApplet().
        接口的原型为:
        LONG CALLBACK CPlApplet(HWND hwndCPL,UINT message, LPARAM lParam1, LPARAM lParam2)
        在接口函数中我们需要实现特定几个消息的响应,控制面板才能正常运作.为方便观察,在这里直接贴出消息的响应结构:
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// The entry point to the Control Panel application.
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
extern "C"  LONG CALLBACK CPlApplet(HWND hwndCPL,UINT message, LPARAM lParam1, LPARAM lParam2)
{
  switch (message)
  {
    case CPL_INIT:
          // Perform global initializations, especially memory
          // allocations, here.
          // Return 1 for success or 0 for failure.
          // Control Panel does not load if failure is returned.
          return 1;
    case CPL_GETCOUNT:
          // The number of actions supported by this Control
          // Panel application.
          return 1;
    case CPL_NEWINQUIRE:
        {
              // This message is sent once for each dialog box, as
              // determined by the value returned from CPL_GETCOUNT.
              // lParam1 is the 0-based index of the dialog box.
              // lParam2 is a pointer to the NEWCPLINFO structure.
                return 0; //means CPLApplet succeed
                return 1;  // Nonzero value means CPlApplet failed.
            }
    case CPL_DBLCLK:
            {
              // The user has double-clicked the icon for the
              // dialog box in lParam1 (zero-based).
                return 0;     // CPlApplet succeed.
                return 1;     // CPlApplet failed.
            }
    case CPL_STOP:
                // Called once for each dialog box. Used for cleanup.
    case CPL_EXIT:
                // Called only once for the application. Used for cleanup.
    default:
          return 0;
  }
  return 1;  // CPlApplet failed.
}  // CPlApplet

        这几个消息的作用分别是:
        CPL_INIT:初始化,可以在这分配内存等等.
        CPL_GETCOUNT:返回控制面板程序的个数.因为一个.cpl文件中,可能包含多个Applets.
        CPL_NEWINQUIRE:返回包含程序名和图标信息的NEWCPLINFO结构
        CPL_DBLCLK:双击时响应
        CPL_STOP:单个组件退出时响应,用来清除资源内存等
        CPL_EXIT:退出整个cpl程序时响应
        这些消息的定义可以在cpl.h中找到
2.在explorer中使用
        如果定制的系统中带有explorer UI,只要把编译好的文件放进"\windows",然后再打开"控制面板"就可以看到.
3.如何调用.cpl
        就像PC机中.dll文件不能直接运行,需要借助rundll32.exe来运行一样,WinCE下的.cpl也需要相应的程序来调用,这个程序就是:"ctlpnl.exe".
        比如我们需要调用系统自带的cplmain.cpl的"电源管理",只要在开始菜单的运行中输入:"ctlpnl.exe \windows\cplmain.cpl,5".在路径后面紧跟的"5"只是因为"电源管理"在cplmain.cpl中输入第五个Applet而已.
        由此我们不难得出在程序中运用ShellExecuteEx()函数调用控制面板的Applet的方法.以下这段代码,效果和在命令行中输入命令一样,也是调用"电源管理".      

    SHELLEXECUTEINFO info;    
    TCHAR szControlPanelCmdLine[ 200 ];
    swprintf( szControlPanelCmdLine, L"\\windows\\cplmain.cpl,5");
    info.cbSize = sizeof( info );
    info.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
    info.lpVerb = NULL;
    info.lpFile = TEXT("ctlpnl.exe");
    info.lpParameters = szControlPanelCmdLine;
    info.lpDirectory = NULL;
    info.nShow = SW_SHOW;
    info.hInstApp = NULL;
    ShellExecuteEx( &info );    

        如果想调用cplmain.cpl的其它Applet,只要把数字改为相对应的即可.
        以下所列的第一项序号为0,接下的为1,其后的继续递增.
        0        CPL_Comm    
        1        CPL_Dialing
        2        CPL_Keyboard
        3        CPL_Password
        4        CPL_Owner   
        5        CPL_Power   
        6        CPL_System  
        7        CPL_Screen    
        8        CPL_Mouse   
        9        CPL_Stylus  
      10        CPL_Sounds  
      11        CPL_SIP    
      12        CPL_Remove  
      13        CPL_DateTime
      14        CPL_Certs      
      15        CPL_Accessib
4.系统自带控制面板的代码
        微软对控制面板的代码是完全公开的,如果安装的是PB4.2,代码可以在"\PUBLIC\WCESHELLFE\OAK\CTLPNL"中找到.
        CTLPNL文件夹中有九个文件夹,分别对应不同的CPL文件:
        ADVBACKLIGHT:高级背光灯管理
        BTHPNL:蓝牙
        CONNPNL:拨号网络
        CONTROL:主控制台,我们在explorer中看到的"控制面板"应该就是这个
        CPLMAIN:会生成cplmain.cpl,控制面板的大多数选项均源自于此
        CTLPNL:和CONTROL相关联的
        DMPNL:没使用过,不太清楚.不过查看rc文件应该是设置上网的.
        INTL2:区域和语言设置
        STGUI:存储器管理


xoxk10控制面板 立即下载

相关推荐

客所思XOXK10驱动

客所思k10 驱动音效,驱动加音效XOXK10控制面板.exe

Linux系统中main()函数怎么执行的

Starting 问题很简单:Linux如何执行main()? 在本文档中,我将使用以下简单的C程序来说明其工作方式。它叫做“ simple.c” main() { return(0); } Build gcc -o simple simple.c 可执行文件中有什么? 要查看可执行文件中的内容,我们使用工具“ objdump” objdump -f simple simple: fi...

errly_liu2828的博客 992

客所思K10控制面板

客所思K10控制面板

xbmc 从android_main启动时的部分步骤记录

xbmc/android/Android_main.cpp */ extern void android_main(struct android_app* state) { { app_dummy(); state->inputPollSource.process = process_input; CEventLoop eventLoop(state); CXBMC

fofu33的专栏 1085

XOX客所思声卡控制面板1.0(适用于KX-2)1.8.1230

XOX客所思声卡控制面板1.0(适用于KX-2)1.8.1230

WinCE6.0 Control 控制面板

WinCE6.0 Control 控制面板 该文件用于wince 的控制面板,有的GPS导航仪出厂时删除了windows\Control.exe控制面板 请复制到windows下面 ***************************************** 多谢capsky提供,现免费提供给大家 *****************************************

客所思的安装

客所思PK1声卡的安装: 1、因为电脑有主板自带的声卡设备,要使用专业的客所思声卡,要把客所思的声音设备在显示屏右下角的声音(喇叭)右键属性设置中,设为相应的播放、录制的默认设备。 2、最后要开启客所思的控制面板,开启机架,才能让客所思真正的发生效果!,否则它不出声音啊。 客所思P系列官方售后 QQ号800041011 http://www.kesuosi.com   客所思P系列(外置声卡)

bluewater的专栏 5863

完整内、外期货量化交易系统源码可售

支持客户登录校验,支持所有的实时行情和汇总报价功能、实时资讯(报价,列表,分时,分钟成交明晰,),多线程支持盘后收盘作业下载(日线,5分钟线,15分钟, 30分钟,60分钟线,),支持从服务器下载相关运行配置(来自服务器动态配置信息,如收盘日期等),实现状态条显示。收盘作业包括日线、5分钟线、15分钟线、30分钟、60分钟线、2小时线、4小时线每日分时走势。综合信息栏显示用户账户信息、合约信息、当日委托单记录、当日成交记录、当日平仓记录、当日跟单记录、当日(月/周)排行榜、下单栏、持仓信息;

qq_35600909的博客 1805

控制面板和驱动通信(转)

控制面板有不少组件,是直接和驱动通信的,其过程一般如此(以创建一个"MyBacklightChange"事件为例子):1.驱动初始化,并创建一个线程,在线程内部创建一个通信的事件Class MyDriver{  ....  private:   void MyInit();    //一个线程处理程序,注意在这里必须声明为static,否则编译(PB4.1)的时候会出错,不知道为什么   stat

gooogleman#foxmail.com 1300

单细胞分析(16)—— RNA Velocity 分析流程

RNA velocity 是一种强大的单细胞转录组分析工具,它可以预测细胞的未来状态,揭示发育轨迹,并用于探索细胞状态转换。RNA velocity 是一种通过单细胞 RNA 测序(scRNA-seq)数据推测细胞未来状态的分析方法。🚀**RNA velocity 提供了一个全新的角度来理解细胞的动态变化,为单细胞转录组分析带来了更深入的时空信息!

阅读文献,记录学习笔记 2980

共享单车数据分析与需求预测项目

除了自行车共享系统的有趣的实际应用之外,这些系统生成的数据特征使它们成为研究的有吸引力的对象。由于这些系统在交通、环境和健康问题中的重要作用,它们引起了极大的关注。Huber 回归器:一个对异常值具有鲁棒性的模型,CV 得分为 0.4660,表明它对此数据集可能不那么有效。代码中的内容cv_score就像您正在使用的机器学习模型的成绩单。它告诉您模型的表现如何。减少异常值的影响:它还可以减少异常值的影响,因为对数转换显着缩小了数据的范围。因此,cv_score平均分数表明您的模型的预测效果如何。

极光喵的博客 2948

详解WINCE的控制面板——转载

详解WINCE的控制面板发 布 时 间 : 2008-11-19    来 源 : 优快云Blog    作 者 : norains   浏 览 : //========================================================================//TITLE:// 详解WINCE的控制面板//AUTHOR:// norains

gooogleman#foxmail.com 1882

从Maya到Unity:3D模型导入全流程避坑指南(含FBX导出设置)

本文详细解析了从Maya导出3D模型至Unity的全流程,重点剖析了FBX格式作为跨软件协作“中间人”的优劣与核心设置。指南涵盖了Maya端模型清理、FBX导出关键配置(如嵌入媒体、轴转换),以及Unity端的模型、材质、动画导入优化与常见问题(如材质丢失、UV法线错误、骨骼动画错乱)的实战解决方案,旨在帮助3D美术师与技术美术建立稳定、高效的工作流。

lg888的博客 792
上一篇: Wince获取Wifi的设备名、连接状态和信号强度
下一篇: WinCE 文件操作
seven-soft
博客等级 码龄15年 604粉丝 979原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值