Here I am describing how to add ribbon control inside Outlook mail.

Step 1: Open Visual Studio 2013 and then click on Office Add-ins. After that click Outlook 2013 Add-in.

Outlook 2013 Add-in

Step 2: Go to solution explorer and right click then add new items and new ribbon (XML).

ribbon

Step 3: Then write the same code inside XML file.

  1. <ribbon>
  2. <tabs>
  3. <tab id="TabAddIns" label="My Ribbon">
  4. <group id="Group1" label="Ribbon Options">
  5. <button id="btnSettings" onAction="btnSettings_Click" imageMso="AdministrationHome" label="Settings" size="normal" />
  6. <button id="btnHelp" onAction="btnHelp_Click" imageMso="Help" label="Get Help and Support" size="normal" /> </group>
  7. <group id="Group2">
  8. <button id="BtnMy" imageMso="HappyFace" onAction="BtnMy_Click" label="My Button" size="large" /> </group>
  9. </tab>
  10. <tab id="TabAddIns1" label="My Ribbon1">
  11. <group id="Group11" label="Ribbon Options1">
  12. <button id="btnSettings1" onAction="btnSettings_Click" imageMso="AdministrationHome" label="Settings" size="normal" />
  13. <button id="btnHelp1" onAction="btnHelp_Click" imageMso="Help" label="Get Help and Support" size="normal" /> </group>
  14. </tab>
  15. </tabs>
  16. </ribbon>
Step 4: Then go to ribbon.cs file and write the same code.
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Reflection;
  6. using System.Runtime.InteropServices;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Office = Microsoft.Office.Core;
  10. // TODO: Follow these steps to enable the Ribbon (XML) item:
  11. // 1: Copy the following code block into the ThisAddin, ThisWorkbook, or ThisDocument class.
  12. // protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
  13. // {
  14. // return new MyRibbon();
  15. // }
  16. // 2. Create callback methods in the "Ribbon Callbacks" region of this class to handle user
  17. // actions, such as clicking a button. Note: if you have exported this Ribbon from the Ribbon designer,
  18. // move your code from the event handlers to the callback methods and modify the code to work with the
  19. // Ribbon extensibility (RibbonX) programming model.
  20. // 3. Assign attributes to the control tags in the Ribbon XML file to identify the appropriate callback methods in your code.
  21. // For more information, see the Ribbon XML documentation in the Visual Studio Tools for Office Help.
  22. namespace OutlookAddIn2
  23. {
  24. [ComVisible(true)]
  25. public class MyRibbon: Office.IRibbonExtensibility
  26. {
  27. private Office.IRibbonUI ribbon;
  28. public MyRibbon()
  29. {}
  30. public void btnSettings_Click(Office.IRibbonControl control)
  31. {
  32. MessageBox.Show("Settings ");
  33. }
  34. public void BtnMy_Click(Office.IRibbonControl control)
  35. {
  36. MessageBox.Show("MyButton ");
  37. }
  38. public void btnHelp_Click(Office.IRibbonControl control)
  39. {
  40. MessageBox.Show("Help ");
  41. }#region IRibbonExtensibility Members
  42. public string GetCustomUI(string ribbonID)
  43. {
  44. return GetResourceText("OutlookAddIn2.MyRibbon.xml");
  45. }#endregion# region Ribbon Callbacks
  46. //Create callback methods here. For more information about adding callback methods, visit http://go.microsoft.com/fwlink/?LinkID=271226
  47. public void Ribbon_Load(Office.IRibbonUI ribbonUI)
  48. {
  49. this.ribbon = ribbonUI;
  50. }#endregion# region Helpers
  51. private static string GetResourceText(string resourceName)
  52. {
  53. Assembly asm = Assembly.GetExecutingAssembly();
  54. string[] resourceNames = asm.GetManifestResourceNames();
  55. for (int i = 0; i < resourceNames.Length; ++i)
  56. {
  57. if (string.Compare(resourceName, resourceNames[i], StringComparison.OrdinalIgnoreCase) == 0)
  58. {
  59. using(StreamReader resourceReader = new StreamReader(asm.GetManifestResourceStream(resourceNames[i])))
  60. {
  61. if (resourceReader != null)
  62. {
  63. return resourceReader.ReadToEnd();
  64. }
  65. }
  66. }
  67. }
  68. return null;
  69. }#endregion
  70. }
  71. }
Step 5: Then build it and run the application.

After that all custom ribbon will be shown on top of the outlook mailbox.

custom ribbon

Here I have described each line of the code plus posted all screenshots.

Please go through that and develop on your own.