The idea is to handle the GetCustomUI callback. It fires only the first time
an item type is opened in that Outlook session and passes you a string
ribbonID argument, which is the type of item being opened.
This is a C# example of handling that callback for new mail items:
public string GetCustomUI(string ribbonID)
{
//RibbonID indicates type of Inspector that is about to be
displayed,
// valid RibbonID values are as follows:
//Microsoft.Outlook.Mail.Read
//Microsoft.Outlook.Mail.Compose
//Microsoft.Outlook.MeetingRequest.Read
//Microsoft.Outlook.MeetingRequest.Send
//Microsoft.Outlook.Appointment
//Microsoft.Outlook.Contact
//Microsoft.Outlook.Journal
//Microsoft.Outlook.Task
//Microsoft.Outlook.DistributionList
//Microsoft.Outlook.Report
//Microsoft.Outlook.Resend
//Microsoft.Outlook.Response.Read
//Microsoft.Outlook.Response.Compose
//Microsoft.Outlook.Response.CounterPropose
//Microsoft.Outlook.RSS
//Microsoft.Outlook.Post.Read
//Microsoft.Outlook.Post.Compose
//Microsoft.Outlook.Sharing.Read
//Microsoft.Outlook.Sharing.Compose
//In this sample only new mail Inspector is handled for a
button.
switch (ribbonID)
{
case "Microsoft.Outlook.Mail.Compose":
// Return the RibbonX markup stored as a resource in the
project
return Resources.CustomRibbon;
default:
{
return String.Empty;
}
}
}
I'm not sure what version of VS you're using or if you're using a shared
addin or a VSTO addin, but you can download the Outlook 2007 templates I
have on my Web site (for VS 2005 for both shared and VSTO addins).
Those have simple XML for adding 2 groups to a custom tab in a new email
message. Each group gets 3 buttons. The templates are in C# and VB.NET (and
VB6). They're at
http://www.slovaktech.com/outlook_2007_templates.htm.
For reference you should also download the schemas for Office 2007, you need
those for the correct names for the ribbon UI and to locate a group within
an existing tab or in the Office button groups.
As I mentioned, they're pretty basic (from my book). The XML itself looks
like this (from the VSTO C# sample):
?xml version="1.0" encoding="utf-8" ?
customUI xmlns = "http://schemas.microsoft.com/office/2006/01/customui"
onLoad = "Ribbon_OnLoad"
ribbon
tabs
tab id="VSTO_CSAddinTab" label="VSTO_CS Addin" visible="true"
insertAfterMso="TabNewMailMessage"
group id="VSTO_GroupCSSettings" label="Settings for this E-mail"
visible="true"
toggleButton id="VSTO_CS1" size="normal" label="HTML"
onAction="CSToggle" getPressed="CSPressed" getImage="CS_GetImage" /
toggleButton id="VSTO_CS2" size="normal" label="Plain Text"
onAction="CSToggle" getPressed="CSPressed" getSupertip="CS_GetSuperTip"
getImage="CS_GetImage" /
toggleButton id="VSTO_CS3" size="normal" label="Rich Text"
getSupertip="CS_GetSuperTip" onAction="CSToggle" getPressed="CSPressed"
getImage="CS_GetImage" /
/group
group id="VSTO_GroupCSActions" label="Actions for this E-mail"
visible="true"
button id="VSTO_CS4" size="normal" label="Insert..."
getSupertip="CS_GetSuperTip" onAction="CS_Action" getImage="CS_GetImage" /
button id="VSTO_CS5" size="normal" label=" " /
button id="VSTO_CS6" size="normal" label="Configure..."
onAction="CS_Action" getSupertip="CS_GetSuperTip" getImage="CS_GetImage" /
/group
/tab
/tabs
/ribbon
/customUI
--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm
"Tom" wrote in message
...
Thanks Ken,
The only examples I have seen do not do anything with the new message
window. I am kind of confused on how to implement ribbon group just for
those windows.
Thanks,
Tom -