General Shell Registry Settings

Other versions of this page are also available for the following:
Windows Mobile Not SupportedWindows Embedded CE Supported
8/28/2008

The registry stores information necessary to configure the system. The registry also contains information that the operating system continually references during operation.

The following registry settings are associated with the standard shell.

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 value for this subkey.

Aa923204.note(en-us,MSDN.10).gifNote:
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.

The HKEY_LOCAL_MACHINE\Software\Microsoft\Clock\ShowDSTUI registry subkey enables an OEM to show the notification dialog for DST or hide it.

Table below shows the named value 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.

The HKEY_LOCAL_MACHINE\Software\Microsoft\Clock\AutoDST registry subkey enables the SNTP service (timesvc.dll) to perform automatic daylight savings switch-over.

Aa923204.note(en-us,MSDN.10).gifNote:
Timesvc.dll is not included on all Windows Embedded CE powered devices.

Table below shows the named value for this subkey.

Value : type Description

AutoDST : DWORD

Default setting is 1, which enables the automatic daylight savings switch-over service. Setting of 0 disables the service.

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.

The following registry settings are associated with the AYGShell API extensions.

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"

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 Windows Mobile 6 Professional 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);
Aa923204.note(en-us,MSDN.10).gifNote:
The value of SPI_COOLMENUCHANGE is 229.

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.

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.

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.

Other Resources


Show: