Code Snippet: Custom Ribbon Manager

Applies to: SharePoint Server 2010

The following example shows the implementation of a custom ribbon manager.

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Microsoft.Office.Core;
using Microsoft.Office.BusinessApplications.Runtime;
using outlookPIA = Microsoft.Office.Interop.Outlook;
using Microsoft.BusinessData.Runtime;
using Microsoft.Office.BusinessData.Offlining;
using Microsoft.BusinessData.MetadataModel;


namespace ContosoCustomer
{

    [ComVisible(true)]
    public class CustomRibbonManager : Microsoft.Office.BusinessApplications.Runtime.RibbonManager
    {

        public static outlookPIA.Application currentOutlookApplication;
        
        public override bool GetEnabled(IRibbonControl control)
        {
            //Retrive trusted Outlook Interop object. 
            if (currentOutlookApplication == null)
            {
                outlookPIA.Inspector CurrentInspector = control.Context as outlookPIA.Inspector;
                currentOutlookApplication = CurrentInspector.Application as outlookPIA.Application;
            } 
            return base.GetEnabled(control);
        }

        public override void OnAction(IRibbonControl control)
        {
            base.OnAction(control);
        }

        public override string GetCustomUI(string ribbonID)
        {
            return base.GetCustomUI(ribbonID);
        }

        public override bool GetVisible(IRibbonControl control)
        {
            return base.GetVisible(control);
        }

        public override void OnLoad(IRibbonUI ribbon)
        {
            base.OnLoad(ribbon);
        }
    }
}