Sdílet prostřednictvím


Customising context menus in Outlook

I had a customer call Microsoft asking how it would be possible to disable the COMMUNICATOR call option (indicated by the label ‘1’ below) in addition to the CALL ALL option (indicated by the label ‘2’ below):

Ordinarily it is possible to remove menu items from the commandbar using group policy and the article below shows you how you can do that in earlier Office versions

How to disable a custom menu command and toolbar button by using a system policy in Office XP

https://support.microsoft.com/kb/309136

You can control some level of this from the server end, so this article might be of interest

Removing "Reply All" Functionality for Outlook Users Who Participate in Reply-All Storms, via Group Policy: what to do

https://msexchangeteam.com/archive/2009/09/29/452689.aspx

However office 2007 does provide a good level of control when deploying templates to users desktops so take at the office blog here

Updated 2007 Office system Administrative Template files (ADM, ADMX, ADML) and Office Customization Tool available

https://blogs.technet.com/b/office_resource_kit/archive/2009/04/30/2007-office-system-sp2-administrative-template-files-adm-admx-adml-and-office-customization-tool-available.aspx

Often to disable individual menu items you’ll need to understand what controlIDS are required to turn those buttons on/off. Microsoft has a list of these control ids here.

2007 Office System Document: Lists of Control IDs

https://www.microsoft.com/downloads/details.aspx?familyid=4329d9e9-4d11-46a5-898d-23e4f331e9ae&displaylang=en

Add-in-Express even have a UI tool to help you get the ID.

https://www.add-in-express.com/files/adx4vstosetup/vsto-for-delphi-prism-v100-b1310.zip

The ID’s below could be used to disable the whole menu or just one item…

DialMenu splitButton None (Core Tab) TabContact GroupCommunicate 108 2616

Call button None (Core Tab) TabContact GroupCommunicate DialMenu 109 15185

There is another technique of repurposing Office commands and this will help you understand what this means. It effectively allows you to rewire the menu buttons.

https://msdn.microsoft.com/en-us/library/bb462633.aspx.

However there will be certain cases where it might be difficult in obtaining the control ID. Here is a routine that will enumerate all the controls and print their control ids out.

Code Block

//Create a new txt file to record controls' list

StreamWriter sw = System.IO.File.CreateText(@"C:\Outlook Inspector Command Bar Control List.txt");

//loop through Outlook ActiveInspector CommandBars to get all CommandBars

foreach (Office.CommandBar cb in app.ActiveInspector().CommandBars)

{

sw.WriteLine(cb.Name);

//loop through each CommandBar's Controls collection to get all controls

foreach (Office.CommandBarControl cbc in cb.Controls)

{

sw.WriteLine("\t" + cbc.Caption + "\t" + cbc.Id.ToString());

}

}

sw.Close();

The articles below also provide you with the information to change the context menu from an addin.

How to: Customize an Item Context Menu

https://msdn.microsoft.com/en-us/library/bb176426(office.12).aspx

Application.ViewContextMenuDisplay Event

https://msdn.microsoft.com/en-us/library/bb175116(v=office.12).aspx

How to: Hide or Disable a Menu Item on a Context Menu

https://msdn.microsoft.com/en-us/library/bb206754(v=office.12).aspx

However, the menu integration with communicator changes things. If it is is installed, then office uses communicator to incorporate into it’s menus and therefore this cannot be disabled via policy. You can however remove the complete menu as below:

BEFORE: registry change…

 

 

 To customize the options on the menu, run these steps:

                Click Start, and then click Run,

                Type regedit, and then click OK.

                In the navigation pane, locate this area of the registry

                                HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common

                On the Edit menu, point to New, and then click Key.

                In the New Key # 1 box, typed PersonaMenu, press ENTER.

                On the Edit menu, point to New, and then click DWORD Value.

                In the New Value # 1 box, typed “Phone”, and then press ENTER.

                On the Edit menu, click Modify.

                In the Value data box, type “0” and then click OK. 0 means to hide the option. 1 means to show the option. Unless the value is specified otherwise, the default setting for the item is to show the item.

AFTER: registry change…

After adding the Key [Phone] into this area, it has removed the whole menu. It seems this is the level you can manipulate, the communicator addin takes over the individual items within that context menu.

There are additional values to remove the messaging information from that menu but as communicator takes over the individual phone menu, it’s either there or it isn’t. Further values to customize the menu located in this article.

How to customize the options on the Persona menu when you right-click a contact in an e-mail message

https://support.microsoft.com/default.aspx?scid=kb;EN-US;968115