Ages ago, I wrote an Outlook plugin for saving emails (.msg files) from Outlook 2003 to SharePoint 2007. Well, the time had come to upgrade that to Outlook 2010. Broadly speaking, that went well, with one exception – what icon to show in the ribbon?
I didn’t want to go through the pain of designing my own icon (in its various different sizes), so I decided to highjack one of the office ones. The customer I was dealing with wanted the ‘Filing cabinet’ icon of the ‘Auto Archive Settings’ button.
Fine, no problem, it’s built in – in it’s various sizes and resolutions. Except – what is its ID?
When defining the button on the ribbon you have to specify an imageMso setting – but there doesn’t seem to be much information on the Outlook ones. There is some information about 2007, but even that seems incomplete for Outlook 2010. So how the hell do I find that ID?
Well, in a moment of inspiration, it struck me that you can add things to the ‘Quick Access Toolbar’ at the top of Outlook. So I did this!
Fine – but where does that get us? Well, that has to be stored somewhere. And it’s specific to me – so it must be in my profile somewhere. I did some digging and found a likely looking file within my profile AppDataLocalMicrosoftOffice
The file olkexplorer.officeUI is actually XML, and does contain the definition of the quick access toolbar:
<mso:customUI xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui"> <mso:ribbon> <mso:qat> <mso:sharedControls> <mso:control idQ="mso:FilePrint" visible="false"/> <mso:control idQ="mso:FileSaveAs" visible="false"/> <mso:control idQ="mso:SendReceiveAll" visible="true"/> <mso:control idQ="mso:UpdateFolder" visible="false"/> <mso:control idQ="mso:NavBack" visible="false"/> <mso:control idQ="mso:NavForward" visible="false"/> <mso:control idQ="mso:Delete" visible="false"/> <mso:control idQ="mso:Undo" visible="true"/> <mso:control idQ="mso:EmptyTrash" visible="false"/> <mso:control idQ="mso:FindContactCombo" visible="false"/> <mso:control idQ="mso:AutoArchiveSettings" visible="true"/> </mso:sharedControls> </mso:qat> </mso:ribbon> </mso:customUI>
There we can see the ID being used – so in my XML for my ribbon I just used imageMso=”AutoArchiveSettings”, and voila! Icon.
But hopefully this would work as a general technique for finding the IDs icons of images used in the office ribbon, where it isn’t documented.
Just what I was looking for! Thanks!