Mobile CPL 生成配置

来源:互联网 发布:java 收银管理系统 编辑:程序博客网 时间:2024/06/04 19:44

       昨天把Mobile SDK的示例程序myBacklight调通了,尽管是一个示例程序,但还是费了一番周折。

       首先是个老大难问题,按照MSDN的说法,直接打开.sln之后,build会报错:
mybacklight.obj : error LNK2019: unresolved external symbol __GSHandlerCheck referenced in function "long __cdecl GetFromRegistry(enum tagRegistryOp,unsigned long *,unsigned long *)"
看得一头雾水,惹不起只好绕道,重新建了一个工程。

       不过工程生成的是dll,而希望生成的是Control Panel (.cpl) files,需要做如下配置:

       1.myBackLight (工程名)右键—〉Properties—〉Configuration Properties—〉Debugging
       2.Remote Executable设置为 "/Windows/ctlpnl.exe";Command Arguments设置为 "myBackLight.cpl"。
       3.Linker—〉General—〉Output File设置为$(OutDir)/myBacklight.cpl
     
       配置完成,新增的AP图标添加到Setting—〉System中,如果需要指定图片到PersonalConnection中,需要在CPlApplet处理CPL_IDNAME消息,主要是设置注册表中的Group值,0 -- Personal, 1 -- System(默认), 2 -- Connection。
         case CPL_IDNAME:
            {
             UINT uApp = lParam1;
             LPWSTR pszName = (LPTSTR)lParam2;
             TCHAR szKey[100];

              _tcscpy(pszName, TEXT("myBacklight"));
              swprintf(szKey, L"ControlPanel//%s", pszName);
    
             DWORD dwSize = sizeof(DWORD);
             HKEY hKey;
             DWORD dwDisp;
             DWORD dwGroup;
             dwGroup = 0;


             RegCreateKeyExW(HKEY_LOCAL_MACHINE, szKey, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey, &dwDisp);
             RegSetValueExW(hKey, L"Group", 0, REG_DWORD, (LPBYTE)&dwGroup, sizeof(DWORD));
             return 0;
            }

       MSDN关于CPL的介绍:
       ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WINCE.v50.en/wceshellui5/html/wce50conControlPanel.htm
原创粉丝点击