|This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.|
The registration format for application shortcut menu extensions is as follows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\Extensions\ContextMenus\< Context>\< Class>\< CLSID> @ = " DefaultStringVal" DelayLoad = dword: DLoad
The application you want to add the shortcut menu extension to. For details, see the Context column in each of the tables in Menu Overview.
The type of object the shortcut menu extension is for. For details, see the Class column in each of the tables in Menu Overview.
The Class Identifier (CLSID) of your shortcut menu extension component.
A string used as the registry key place holder for the default value.
|This string value is not used as the menu text, and can be anything at all. It is important that a string value exists for this registry key.|
Specifies whether to delay-load the shortcut menu extension. When delay-loaded, the IContextMenuobject is neither initialized nor called until the menu item is invoked. Only one shortcut menu extension can be delay-loaded at a time.
To delay-load the shortcut menu extension, include the DelayLoadvalue name and give it the value DelayLoad=dword:1. If DelayLoadis missing or set to 0, the shell calls IContextMenu::QueryContextMenuduring the call to SHLoadContextMenuExtensionsand enumerates the shortcut menu items to add.
The default value of an InprocServer32 registry key contains the name of the DLL file that implements the menu extension. For example:
The menu extension itself is defined using a second registry key. For example:
Backward compatibility issues exist for Outlook Mobile
menu extensions registered using the older registration format. In
some instances, the new menu items are prevented from appearing in
the user interface. In others, the menu extension is unable to
retrieve the correct item type (see
IItem::get_DefaultItemType) or OID (see
IItem::get_Oid) — which can result in
ID'snot being returned from
IItem::GetPropson the items returned from
IPOutlookApp::GetItemFromOid. For information on the deprecated
registration format, see the topic