General Shell Registry Settings (Windows CE 5.0)
The registry stores information necessary to configure the system. The registry also contains information that the operating system continually references during operation.
Standard Shell Registry Settings
The following registry settings are associated with the standard shell.
Display device color depth
The HKEY_LOCAL_MACHINE\Software\Microsoft\Shell registry subkey allows you to identify the bit depth of the display device on your system. This registry subkey is read by the Windows Media Video codec, which can then correctly dither 16-bits-per-pixel (bbp) output to the correct bit depth of the display device. This subkey is particularly useful for target devices with 12-bpp LCD controllers.
The following table shows the named values for this subkey.
Note The default registry values vary depending on which Catalog items are included in your OS design. For more information, see Default Registry Settings.
Value : type | Description |
---|---|
LCDBitDepth : DWORD | Default setting is 16. This value is the bit depth of the display device. |
Show notification dialog for Daylight or Standard Time (DST)
The HKEY_LOCAL_MACHINE\Software\Microsoft\Clock\ShowDSTUI registry subkey enables an OEM to show the notification dialog for DST or hide it.
The following table shows the named values for this subkey.
Value : type | Description |
---|---|
ShowDSTUI : DWORD | Default setting is 0, which means that no notification dialog box will appear for the DST. Setting this value to 1 will show the notification dialog box for DST. |
Display mode for Remote Desktop Protocol (RDP)
By default, the standard shell is windowed, and allows the user to choose the size of the remote connection window. You can change this functionality to disable windowed mode and always display as a full screen. For more information, see RDP Registry Settings.
AYGShell Registry Settings
The following registry settings are associated with the AYGShell API extensions.
Navigational control key bindings
The HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Keys registry subkey is used by OEMs to store data about applications mapped to a target device's navigational controls. The registry subkeys below this one are the hexadecimal values corresponding to the virtual key codes VK_APP1 through VK_APP6. Application developers should not read or write directly to these registry subkeys. Instead, they should use SHGetAppKeyAssoc and SHSetAppKeyWndAssoc.
The following table shows the named values for these subkeys.
Value : type | Description |
---|---|
Application : REG_SZ | No default setting. This value contains the name of the application to run. It is MAX_PATH in length, including the null character. |
Path : REG_SZ | No default setting. This value contains the path to the application. It is MAX_PATH in length, including the null character. |
Flags : REG_SZ | No default setting. This value contains parameters that are passed to ShellExecuteEx through the lpParameters member of the SHELLEXECUTEINFO structure. The data for this setting is application-specific. The value is MAX_PATH in length, including the null character. |
The following table shows the values for the virtual key codes that correspond to the navigational control keys.
Virtual Key Code | Value |
---|---|
VK_APP1 | 0xC1 |
VK_APP2 | 0xC2 |
VK_APP3 | 0xC3 |
VK_APP4 | 0xC4 |
VK_APP5 | 0xC5 |
VK_APP6 | 0xC6 |
The following example code shows an entry for the VK_APP3 navigational control.
[HKEY_LOCAL_MACHINE\Software\microsoft\shell\keys\C3]
"Application"=REG_SZ:"MyApplication.exe"
"Path"=REG_SZ:"\Programs\MyGames"
"Flags"=REG_SZ:"map=jupiter,lives=3,difficulty=5"
New button menus
The New button is system-wide functionality that allows a user to quickly create common item types supported by the OS design. The registry subkey HKEY_LOCAL_MACHINE\ControlPanel\Menu controls how the New button menu is presented on your target device. For more information, see Pocket PC-style New Button.
This registry setting is only for use by OEMs.
The following table shows named values for this subkey.
Value : type | Description |
---|---|
CoolMenu : DWORD | No default setting. Set this value to 1 to add the TBSTYLE_DROPDOWN style to the New button. Any value other than 1 indicates that TBSTYLE_DROPDOWN style is not used.For information, see Toolbar Styles. |
By default, the TBSTYLE_DROPDOWN style for New button menus is turned off for the entire OS design. If an OEM uses an application to change this registry setting, then the application should send a notification the OS after the changes has been made. This causes New button menus on applications that are already running to be updated with the new style. Use the following code to send the notification:
SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_COOLMENUCHANGE, 0);
**Note **The value of
SPI_COOLMENUCHANGE
is 229.
Global New button menu entries
You can make entries for the following registry subkeys to add a permanent item to the New button menu.
[HKEY_CLASSES_ROOT\CLSID\<GUID>]
@="<Optional description>"
[HKEY_CLASSES_ROOT\CLSID\<GUID>\InprocServer32]
@="<Path to DLL>"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Extensions\NewMenu\<GUID>]
@="<Menu text>"
It is recommended that you only add one global entry for your application to the New button menu. For more information, see Adding a Global New Button Menu Item.
Temporary New button menu entries
An application can add temporary entries to the New button menu by using NMN_GETAPPREGKEY notifications to create registry settings, as follows:
HKEY_LOCAL_MACHINE\<Application Name>\NewMenu\<GUID>
@="Menu Text"
The GUID identifies the COM object that creates the new item. For more information, see Adding a Temporary New Button Menu Item.
Application context extensions
If you want to create an extension to the application context, it is necessary to make the following registry updates to register the extension to appear in a particular context menu.
HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Extensions\ContextMenus\<Context>\<Class>\<CLSID>
@="<Menu Display Name>"
"DelayLoad"=dword:<delay load>
The registry keys are defined as follows:
Context is the scope or application where this context menu extension will be applied.
Class is the type of object to which Context will be applied.
CLSID is the class ID of the extension, as it is registered for COM server.
Menu Display Name is the default or unnamed value for the key and specifies the name of the menu extension. All extensions must specify this string. It will be displayed as the context menu item text for this extension when the extension will be delay-loaded.
delay load is used to delay-load the extension. When a context menu extension is delay-loaded, the extension will only be allowed to control one menu item, and the text used for this menu item will be Menu Display Name.To create the delay-load, create the DelayLoad registry value and set it to
dword:1
. In that case, the IContextMenu object will not be initialized and called until the corresponding menu item is invoked.If the DelayLoad value is missing or set to 0, the shell will call IContextMenu::QueryContextMenu during SHLoadContextMenuExtensions to enumerate the commands to be added.
See Also
Send Feedback on this topic to the authors