How to show Control Panel applets on Windows Mobile?

February 7, 2009

Windows Mobile Control Panel applets are normal dlls renamed with special extension .cpl. They are actually loaded by ctlpnl.exe process.

Following code snipped is what you need if you want to show a Control Panel applet from your program. This way you make it easy for your user to change desired settings, without any “complex” navigation.

BOOL ShowControlPanelApplet(int id)
TCHAR    szParams[32];
SHELLEXECUTEINFO execinfo = {0};
memset(&execinfo, 0, sizeof(execinfo));
// Id value determines which control applet will be launched
// For e.g. 23 for bluetooth applet
wsprintf(szParams, L”cplmain.cpl,%d”, id);
execinfo.lpParameters = szParams;
BOOL bRet=ShellExecuteEx(&execinfo);
return bRet;

The parameter id refers to the control panel applet that you want to show. Below is the table of id values and the corresponding applet names.

Control Panel Applet Id Values

1    Password
2    Owner Information
3    Power
4    Memory
5    About
6    Brightness
7    Screen
8    Input
9    Sounds & Notifications
10    Remove Programs
11    Menus
12    Buttons
13    Today
15    Beam
16    Clocks & Alarms
17    Configure Network Adapters
18    Regional Settings
19    Connections
22    Manage Certificates
23    Bluetooth
24    Error Reporting
25    GPS Settings
27    USB to PC