Share via


Extension de l’interface utilisateur dans Outlook 2010

**Synthèse :**Découvrez comment étendre par programme l’interface utilisateur Microsoft Office Fluent pour personnaliser l’interface utilisateur de Microsoft Outlook 2010. L’interface utilisateur Fluent de Microsoft Office 2010 inclut le ruban, les menus et le mode Microsoft Office Backstage Office Fluent. Cet article indique comment personnaliser les rubans de l’explorateur et de l’inspecteur, les menus et les menus contextuels, ainsi que le mode Backstage dans l’interface utilisateur de Outlook 2010. Il passe en revue un exemple de code qui illustre la personnalisation du ruban, des menus contextuels et du mode Backstage, et examine des problèmes qui s’appliquent à l’interface utilisateur d’Outlook 2010.

Dernière modification : mercredi 30 janvier 2013

S’applique à : Office 2010 | Outlook 2010 | Visual Studio

Dans cet article
Vue d’ensemble
Exemple de complément
Identificateurs de rubans
Explorateur
Inspecteur
Menu contextuel Dossier
Menu contextuel du dossier de recherche racine
Menu contextuel de magasin
Menu contextuel pour un élément de courrier
Menu contextuel pour plusieurs éléments sélectionnés
ntextuel pour un rendez-vous ou une demande de réunion
Menu contextuel pour un élément Tâches
Menu contextuel pour un élément de Contact
Menu contextuel pour un élément Journal
Menu contextuel pour un élément de Note
Menu contextuel de raccourci
Menu contextuel de pièce jointe
Menu contextuel de l’affichage Tableau
Menu contextuel de l’affichage Calendrier
Menu contextuel de l’affichage Carte
Menu contextuel de l’affichage chronologique
Menu de la commande Organiser par
Menu contextuel pour l’échelle de temps
Menu contextuel pour la barre de disponibilité
Menu contextuel pour une colonne de l’affichage Tableau
Menu contextuel des catégories
Menu contextuel des indicateurs rapides
Menu contextuel pour un élément du courrier avec indicateur
Menu contextuel pour un élément Contact avec indicateur
Menu Nouveaux éléments pour le module Courrier
Menu Nouveaux éléments pour le module Calendrier
Menu Nouveaux éléments pour le module Contacts
Menu Nouveaux éléments pour le module Tâches
Menu Nouveaux éléments pour le module Journal
Menu Nouveaux éléments pour le module Notes
Menu contextuel de personnage pour un expéditeur ou un destinataire
Menu pour autres interactions
Onglets contextuels
Mode Backstage
Conclusion
Ressources supplémentaires

S'applique à :  Microsoft Office 2010 | Microsoft Outlook 2010
Publié en :  novembre 2009 | Mis à jour en :  avril 2010
Fourni par :  Randy Byrne, Microsoft Corporation

Sommaire

-
Vue d’ensemble

-
Exemple de complément

-
Identificateurs de rubans

-
Explorateur

-
Inspecteur

-
Menu contextuel Dossier

-
Menu contextuel du dossier de recherche racine

-
Menu contextuel de magasin

-
Menu contextuel pour un élément de courrier

-
Menu contextuel pour plusieurs éléments sélectionnés

-
ntextuel pour un rendez-vous ou une demande de réunion

-
Menu contextuel pour un élément Tâches

-
Menu contextuel pour un élément de Contact

-
Menu contextuel pour un élément Journal

-
Menu contextuel pour un élément de Note

-
Menu contextuel de raccourci

-
Menu contextuel de pièce jointe

-
Menu contextuel de l’affichage Tableau

-
Menu contextuel de l’affichage Calendrier

-
Menu contextuel de l’affichage Carte

-
Menu contextuel de l’affichage chronologique

-
Menu de la commande Organiser par

-
Menu contextuel pour l’échelle de temps

-
Menu contextuel pour la barre de disponibilité

-
Menu contextuel pour une colonne de l’affichage Tableau

-
Menu contextuel des catégories

-
Menu contextuel des indicateurs rapides

-
Menu contextuel pour un élément du courrier avec indicateur

-
Menu contextuel pour un élément Contact avec indicateur

-
Menu Nouveaux éléments pour le module Courrier

-
Menu Nouveaux éléments pour le module Calendrier

-
Menu Nouveaux éléments pour le module Contacts

-
Menu Nouveaux éléments pour le module Tâches

-
Menu Nouveaux éléments pour le module Journal

-
Menu Nouveaux éléments pour le module Notes

-
Menu contextuel de personnage pour un expéditeur ou un destinataire

-
Menu pour autres interactions

-
Onglets contextuels

-
Mode Backstage

-
Conclusion

-
Ressources supplémentaires

Vue d’ensemble

Cet article décrit les nombreuses manières de personnaliser par programme les parties suivantes de l’interface utilisateur d’Outlook 2010 :

  • Rubans de l’explorateur

  • Rubans de l’inspecteur

  • Menus contextuels

  • Menus Nouvel élément

  • Menus contextuels Carte de visite

  • Onglets contextuels

  • Mode Backstage

Spécifiquement, cet article explique comment utiliser l’extensibilité de l’interface utilisateur Fluent pour personnaliser les composantes de chacune de ces sections. Pour commencer, vous devez fournir le balisage XML de la méthode GetCustomUI (éventuellement en anglais) de l’interface IRibbonExtensibility (éventuellement en anglais). Utilisez l’ID de ruban du composant que vous souhaitez personnaliser pour déterminer le code XML à passer comme valeur retournée dans la méthode GetCustomUI. Votre code XML fournit généralement des rappels que vous pouvez utiliser pour répondre à un clic sur un bouton ou pour contrôler la visibilité de vos contrôles du ruban.

Cet article indique la propriété IRibbonControl.Context (éventuellement en anglais) que vous devez attendre dans les rappels d’extensibilité de l’interface utilisateur Fluent dans votre code. En outre, il inclut un exemple de balisage XML pour chaque composant d’interface utilisateur, ainsi qu’une capture d’écran qui illustre le composant d’interface utilisateur pour vous aider à comprendre où s’effectue la personnalisation dans l’interface utilisateur d’Outlook 2010.

Notes

Les ID de ruban et composants cités dans cet article pourraient changer dans la version finale d’Outlook 2010. Dans certains cas, les options exactes dans un menu ou un menu contextuel sont fonction de la suite de Microsoft Office 2010 installée et du type d’élément Outlook qui est sélectionné.

Avant de lire cet article, vous devriez déjà avoir une compréhension de base de la procédure d’extension de l’interface utilisateur Fluent à l’aide d’un complément. Si vous n’avez pas eu l’occasion de vous familiariser avec l’extensibilité de l’interface utilisateur Fluent, consultez les articles techniques répertoriés dans la section Ressources supplémentaires.

Exemple de complément

L’exemple de complément RibbonXOutlook14AddinCS accompagne cet article. Il utilise Microsoft Visual C# et nécessite Microsoft Visual Studio 2008 Service Pack 1 et Outlook 2010.

Vue d’ensemble

L’exemple de complément illustre comment personnaliser les rubans, les menus, les menus contextuels et le mode Backstage dans Outlook 2010. Développé dans Visual Studio 2008 Tools pour Office, le complément ajoute des contrôles de ruban, un menu personnalisé, des éléments de menu contextuel et des contrôles de mode Backstage, puis affiche un message lorsque l’utilisateur clique sur le contrôle ou un élément de menu. Le complément fournit un élément visuel pour chaque point d’entrée dans l’interface utilisateur d’Outlook 2010 que vous pouvez personnaliser à l’aide de l’extensibilité d’interface utilisateur Fluent.

L’exemple de complément possède des fonctions supplémentaires qui illustrent comment gérer les aspects problématiques de l’interface utilisateur d’Outlook 2010. Par exemple, supposons que vous souhaitez afficher un groupe personnalisé dans le ruban réservé aux éléments de courrier reçus. L’exemple de complément affiche l’onglet de ruban personnalisé uniquement lorsque l’élément sélectionné dans l’explorateur Outlook est un élément de courrier reçu ou lorsque l’élément de courrier reçu est affiché dans un inspecteur. Bien que cette tâche puisse d’abord sembler très simple, elle constitue en réalité un problème complexe car Outlook peut afficher de multiples fenêtres d’explorateur ou d’inspecteur, et votre code doit pouvoir répondre de façon appropriée. Par exemple, dans deux fenêtres d’explorateur ouvertes, vous pourriez devoir masquer l’onglet personnalisé dans la fenêtre où une réunion est sélectionnée, mais afficher l’onglet personnalisé dans la fenêtre où un élément de courrier reçu est sélectionné. Une fois que vous comprenez bien le fonctionnement de l’exemple de complément, vous pouvez utiliser les classes wrapper de l’exemple pour construire votre propre solution pouvant coordonner l’affichage de votre interface utilisateur de commandes dans plusieurs fenêtres Outlook.

Instructions d’installation

Pour télécharger le package d’installation de l’exemple de code

  1. Téléchargez le fichier RibbonXOutlook14AddinCS.zip à partir du site Web de la bibliothèque de code MSDN (éventuellement en anglais).

  2. Extrayez le fichier .zip dans le dossier de votre choix. Sous Windows Vista, le chemin par défaut des projets Visual Studio 2008 Tools pour Office est C:\Users\utilisateur\Documents\Visual Studio 2008\Projects.

Pour exécuter l’exemple d’extensibilité du Ruban Outlook

  1. Fermez Outlook 2010.

  2. Dans le dossier où vous avez extrait le fichier RibbonXOutlook14AddinCS.zip, ouvrez la solution RibbonXOutlook14AddinCS.

  3. Dans le menu Générer, cliquez sur Générer RibbonXOutlook14AddinCS.

  4. Lancez Outlook 2010 pour démarrer le complément en mode d’exécution, ou appuyez sur F5 pour démarrer le complément en mode débogage. Si Outlook ne démarre pas en mode débogage, procédez comme suit.

Pour démarrer Outlook en mode Débogage

  1. Dans l’Explorateur de solutions, sélectionnez RibbonXOutlook14AddinCS.

  2. Dans le menu Projet, sélectionnez Propriétés de RibbonXOutlook14AddinCS, puis cliquez sur l’onglet Débogage.

  3. Sous Action de démarrage, sélectionnez l’option Démarrer le programme externe, puis cliquez sur Parcourir.

  4. Dans le dossier [Lecteur:]\Program Files\Microsoft Office\Office14 , sélectionnez Outlook.exe.

  5. Appuyez sur F5 pour démarrer le complément en mode débogage.

Génération de code pas à pas

La solution Outlook14RibbonXAddinCS est construite avec Microsoft Visual Studio 2008 Service Pack 1. Elle utilise la création manuelle de fichiers de balisage XML au lieu du Concepteur de ruban fourni avec Visual Studio Tools pour Office. La caractéristique architecturale la plus importante est l’utilisation de classes wrapper (OutlookExplorer.cs pour les explorateurs et OutlookInspector.cs pour les inspecteurs) pour gérer de multiples fenêtres Outlook. Les classes wrapper sont mises en œuvre à l’aide d’une classe C# Generic List(T).

Notes

Si vous n’écrivez pas de code géré, vous devez écrire un code C++ natif qui reproduit l’utilisation de ces classes wrapper.

D’abord, les variables d’instance de niveau classe suivantes sont déclarées dans la classe standard ThisAddin dans Visual Studio 2008 avec Visual Studio Tools pour Office.

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;

namespace RibbonXOutlook14AddinCS
{
    public partial class ThisAddIn
    {
        #region Instance Variables
        Outlook.Application m_Application;             
        Outlook.Explorers m_Explorers;
        Outlook.Inspectors m_Inspectors;
        public stdole.IPictureDisp m_pictdisp = null;
        // List of tracked explorer windows.         
        internal static List<OutlookExplorer> m_Windows;
        // List of traced inspector windows.
        internal static List<OutlookInspector> m_InspectorWindows;
        // Ribbon UI reference.
        internal static Office.IRibbonUI m_Ribbon;
        #endregion
        ...
    }
}

Une fois que les variables d’instance ont été déclarées, elles sont utilisées dans la méthode Startup de la classe ThisAddin qui est fournie à tous les compléments Visual Studio 2008 avec Visual Studio Tools pour Office. Dans la méthode Startup, intervenant généralement au démarrage d’Outlook, le code raccorde d’abord un gestionnaire d’événements pour répondre à l’événement NewExplorer (éventuellement en anglais) sur l’objet de connexion Explorers (éventuellement en anglais) d’Outlook. Une fois que l’événement NewExplorer a été traité, la fenêtre d’explorateur active est ajoutée à l’aide du code suivant.

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    // Initialize variables.
    m_Application = this.Application;
    m_Explorers = m_Application.Explorers;
    m_Inspectors = m_Application.Inspectors;
    m_Windows = new List<OutlookExplorer>();
    m_InspectorWindows = new List<OutlookInspector>();

    // Wire up event handlers to handle multiple Explorer windows.
    m_Explorers.NewExplorer += 
        new Outlook.ExplorersEvents_NewExplorerEventHandler(
            m_Explorers_NewExplorer);
    // Wire up event handler to handle multiple Inspector windows.
    m_Inspectors.NewInspector += 
        new Outlook.InspectorsEvents_NewInspectorEventHandler(
            m_Inspectors_NewInspector);
    // Add the ActiveExplorer to m_Windows.
    Outlook.Explorer expl = m_Application.ActiveExplorer()
        as Outlook.Explorer;
    OutlookExplorer window = new OutlookExplorer(expl);
    m_Windows.Add(window);
    // Hook up event handlers for window.
    window.Close += new EventHandler(WrappedWindow_Close);
    window.InvalidateControl += new EventHandler<
        OutlookExplorer.InvalidateEventArgs>(
        WrappedWindow_InvalidateControl);
    // Get IPictureDisp for CurrentUser on startup.
    try
    {
        Outlook.AddressEntry addrEntry = 
            Globals.ThisAddIn.Application.Session.CurrentUser.AddressEntry;
        if (addrEntry.Type == "EX")
        {
            Outlook.ExchangeUser exchUser = 
                addrEntry.GetExchangeUser() as Outlook.ExchangeUser;
            m_pictdisp = exchUser.GetPicture() as stdole.IPictureDisp;
        }
    }
    catch (Exception ex)
    {
        // Write exception to debug window.
        Debug.WriteLine(ex.Message);
    }
}

Tout juste après le démarrage d’Outlook, Office appelle GetCustomUI. GetCustomUI est la méthode de l’interface IRibbonExtensibility qui charge le balisage XML personnalisé. Dans Outlook 2007, Office appelait GetCustomUI lors de l’affichage de la première instance d’un type d’inspecteur donné, par exemple un contact ou un rendez-vous. Dans Outlook 2010, Office appelle GetCustomUI avant la méthode ThisAddin.Startup pour permettre le chargement de personnalisations de ruban pour le ruban de l’explorateur Outlook. Comme Office appelle GetCustomUI une seule fois pour le premier explorateur Outlook pendant le démarrage et plusieurs fois pour la première instance de types d’inspecteurs multiples, envisagez d’utiliser une instruction Switch pour contrôler le chargement du balisage XML pour différents Rubans personnalisés. Pour chaque ruban dans Outlook, GetCustomUI est appelé et Office passe la chaîne d’ID de ruban qui identifie le ruban en cours de chargement dans Outlook. Pour une liste complète des ID de ruban, reportez-vous à la section section Identificateurs de rubans.

L’exemple de code comporte trois fichiers de balisage XML :

  • ContactCard.xml

  • Explorer.xml

  • ReadMail.xml

ContactCard.xml contient le balisage XML des menus contextuels sur la carte de visite. Explorer.xml contient le balisage XML du ruban de l’explorateur, des menus contextuels et du mode Backstage. Readmail.xml contient le balisage XML d’un inspecteur de lecture de message.

Pour mieux comprendre le fonctionnement de cette technique, examinez le code suivant de la méthode GetCustomUI dans la classe OutlookRibbonX.

        
public string GetCustomUI(string ribbonID)
{
    string customUI = string.Empty;
    Debug.WriteLine(ribbonID);
    // Return the appropriate XML markup for ribbonID.
    switch (ribbonID)
    {
        case "Microsoft.Outlook.Explorer":
            customUI = GetResourceText( 
                "RibbonXOutlook14AddinCS.Explorer.xml");
            return customUI;
        case "Microsoft.Outlook.Mail.Read":
            customUI= GetResourceText(
                "RibbonXOutlook14AddinCS.ReadMail.xml");
            return customUI;
        case "Microsoft.Mso.IMLayerUI":
            customUI = GetResourceText(
                "RibbonXOutlook14AddinCS.ContactCard.xml");
            return customUI;
        default:
            return string.Empty;
    }
}

Examinez l’exemple de solution présentant le listage complet de ContactCard.xml, Explorer.xml et ReadMail.xml. Une fois que le balisage XML personnalisé a été chargé pour chaque complément, il convient d’écrire le code dans les rappels d’extensibilité de l’interface utilisateur Fluent pour masquer et afficher l’onglet nommé MyTab, selon que l’élément sélectionné dans l’explorateur soit ou non un élément de courrier reçu. Pour compléter le scénario, vous devez connecter un autre ensemble d’événements dans le constructeur de la classe OutlookExplorer.

        
public OutlookExplorer(Outlook.Explorer explorer)
{
    m_Window = explorer;
        
    // Hook up Close event.
    ((Outlook.ExplorerEvents_Event)explorer).Close +=
        new Outlook.ExplorerEvents_CloseEventHandler(
        OutlookExplorerWindow_Close);

    // Hook up SelectionChange event.
    m_Window.SelectionChange += 
        new Outlook.ExplorerEvents_10_SelectionChangeEventHandler(
        m_Window_SelectionChange);
}

Le gestionnaire d’événements SelectionChange est très simple. L’événement SelectionChange se produit lorsque l’utilisateur change la sélection dans une fenêtre d’explorateur. Lorsque SelectionChange se produit, la méthode RaiseInvalidateControl est appelée et l’ID de contrôle « MyTab » est passé à la méthode. RaiseInvalidateControl appelle un délégué d’événement nommé WrappedWindow_InvalidateControl dans la classe ThisAddin.

        
private void m_Window_SelectionChange()
{
    RaiseInvalidateControl("MyTab");
} 
void WrappedWindow_InvalidateControl(object sender,
    OutlookExplorer.InvalidateEventArgs e)
{
    if (m_Ribbon != null)
    {
        m_Ribbon.InvalidateControl(e.ControlID);
    }
}

La variable m_Ribbon représente un objet IRibbonUI. Lorsque la méthode InvalidateControl de l’objet IRibbonUI est appelée, des rappels de rubans se produisent pour le contrôle « MyTab ». Vous pouvez également appeler la méthode Invalidate de IRibbonUI, mais cette méthode provoque des rappels pour tous les contrôles que votre complément ajoute au ruban. En général, faites en sorte que l’invalidation soit plus granulaire que globale, surtout lorsque vos rappels chargent les ressources d’image avec un rappel getImage. Pour le contrôle « MyTab », un rappel getVisible a été défini dans la classe RibbonXAddin qui contrôle la visibilité de l’onglet. Si le rappel getVisible renvoie True, l’onglet est visible ; sinon, « MyTab » est masqué. Le code suivant se trouve dans le rappel MyTab_GetVisible dans sa totalité.

        
// Only show MyTab when explorer selection is 
// a received mail or when inspector is a read note.
public bool MyTab_GetVisible(Office.IRibbonControl control)
{
    if (control.Context is Outlook.Explorer)
    {
        Outlook.Explorer explorer = 
            control.Context as Outlook.Explorer;
        Outlook.Selection selection = explorer.Selection;
        if (selection.Count == 1)
        {
            if (selection[1] is Outlook.MailItem)
            {
                Outlook.MailItem oMail = 
                    selection[1] as Outlook.MailItem;
                if (oMail.Sent == true)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    else if (control.Context is Outlook.Inspector)
    {
        Outlook.Inspector oInsp = 
            control.Context as Outlook.Inspector;
        if (oInsp.CurrentItem is Outlook.MailItem)
        {
            Outlook.MailItem oMail = 
                oInsp.CurrentItem as Outlook.MailItem;
            if (oMail.Sent == true)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    else
    {
        return true;
    }
}

Cette procédure pas à pas décrit de façon détaillée les plus importantes stratégies pour l’extension du ruban dans Outlook 2010. En résumé, votre code doit prendre en charge les opérations suivantes :

  • L’utilisation de plusieurs fenêtres d’explorateur ou d’inspecteur dans Outlook 2010. Encapsulez les fenêtres dans une instance de classe séparée pouvant déclencher des événements appropriés pour cette fenêtre.

  • L’utilisation appropriée des méthodes InvalidateControl ou Invalidate de l’interface IRibbonUI pour provoquer des rappels.

  • L’évaluation de différents types d’éléments (selon la classe de message, les propriétés intégrées ou les propriétés personnalisées d’un type d’élément spécifique) dans les gestionnaires d’événements et les rappels de ruban.

Identificateurs de rubans

Le tableau suivant répertorie les ID de rubans qui sont passés à la méthode GetCustomUI de l’interface IRibbonExtensibility. Utilisez l’ID de ruban pour déterminer le code XML à renvoyer dans la méthode GetCustomUI.

Tableau 1. ID de ruban et classe de message

ID de ruban

Classe de message

Microsoft.OMS.MMS.Compose

IPM.Note.Mobile.MMS.*

Microsoft.OMS.MMS.Read

IPM.Note.Mobile.MMS.*

Microsoft.OMS.SMS.Compose

IPM.Note.Mobile.SMS.*

Microsoft.OMS.SMS.Read

IPM.Note.Mobile.SMS.*

Microsoft.Outlook.Appointment

IPM.Appointment.*

Microsoft.Outlook.Contact

IPM.Contact.*

Microsoft.Outlook.DistributionList

IPM.DistList.*

Microsoft.Outlook.Journal

IPM.Activity.*

Microsoft.Outlook.Mail.Compose

IPM.Note.*

Microsoft.Outlook.Mail.Read

IPM.Note.*

Microsoft.Outlook.MeetingRequest.Read

IPM.Schedule.Meeting.Request ou IPM.Schedule.Meeting.Canceled

Microsoft.Outlook.MeetingRequest.Send

IPM.Schedule.Meeting.Request

Microsoft.Outlook.Post.Compose

IPM.Post.*

Microsoft.Outlook.Post.Read

IPM.Post.*

Microsoft.Outlook.Report

IPM.Report.*

Microsoft.Outlook.Resend

IPM.Resend.*

Microsoft.Outlook.Response.Compose

IPM.Schedule.Meeting.Resp.*

Microsoft.Outlook.Response.CounterPropose

IPM.Schedule.Meeting.Resp.*

Microsoft.Outlook.Response.Read

IPM.Schedule.Meeting.Resp.*

Microsoft.Outlook.RSS

IPM.Post.Rss.*

Microsoft.Outlook.Sharing.Compose

IPM.Sharing.*

Microsoft.Outlook.Sharing.Read

IPM.Sharing.*

Microsoft.Outlook.Task

IPM.Task.* and IPM.TaskRequest.*

Microsoft.Outlook.Explorer

Non applicable. Utilisez cet ID de ruban pour renvoyer le balisage XML pour les rubans de l’explorateur, les menus contextuels et le mode Backstage.

Explorateur

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer (éventuellement en anglais)

Remarques

Lorsque Outlook 2010 démarre, il appelle la méthode GetCustomUI de l’interface IRibbonExtensibility et spécifie l’ID de ruban dans le paramètre RibbonID pour le complément. Ce dernier doit mettre en œuvre la méthode GetCustomUI de telle sorte que si RibbonID est Microsoft.Outlook.Explorer, GetCustomUI renvoie le balisage XML pour les personnalisations de l’explorateur et du menu contextuel.

Exemple de balisage XML

  
<ribbon>
    <tabs>
        <tab id="MyTab"
            getVisible="MyTab_GetVisible"
            label="MyTab">
            <group label="MyGroup" id="MyGroup">
                <button id="MyButton"
                    size="large"
                    label="MyButton"
                    imageMso="HappyFace"
                    onAction="OnMyButtonClick"/>
            </group>
        </tab>
    </tabs>
</ribbon>

Exemple d’interface utilisateur

Figure 1. Extension du ruban de l’explorateur

Développement du Ruban de l’explorateur

Inspecteur

ID de ruban

Outlook prend en charge différents rubans dans les inspecteurs qui affichent différents types d’éléments. Selon la classe de message de l’élément à afficher dans un inspecteur, le complément doit prévoir que Outlook passe l’ID de ruban correspondant comme paramètre RibbonID à la méthode GetCustomUI.

Tableau 2. ID de ruban et classe de message

ID de ruban

Classe de message

Microsoft.OMS.MMS.Compose

IPM.Note.Mobile.MMS.*

Microsoft.OMS.MMS.Read

IPM.Note.Mobile.MMS.*

Microsoft.OMS.SMS.Compose

IPM.Note.Mobile.SMS.*

Microsoft.OMS.SMS.Read

IPM.Note.Mobile.SMS.*

Microsoft.Outlook.Appointment

IPM.Appointment.*

Microsoft.Outlook.Contact

IPM.Contact.*

Microsoft.Outlook.DistributionList

IPM.DistList.*

Microsoft.Outlook.Journal

IPM.Activity.*

Microsoft.Outlook.Mail.Compose

IPM.Note.*

Microsoft.Outlook.Mail.Read

IPM.Note.*

Microsoft.Outlook.MeetingRequest.Read

IPM.Schedule.Meeting.Request ou IPM.Schedule.Meeting.Canceled

Microsoft.Outlook.MeetingRequest.Send

IPM.Schedule.Meeting.Request

Microsoft.Outlook.Post.Compose

IPM.Post.*

Microsoft.Outlook.Post.Read

IPM.Post.*

Microsoft.Outlook.Report

IPM.Report.*

Microsoft.Outlook.Resend

IPM.Resend.*

Microsoft.Outlook.Response.Compose

IPM.Schedule.Meeting.Resp.*

Microsoft.Outlook.Response.CounterPropose

IPM.Schedule.Meeting.Resp.*

Microsoft.Outlook.Response.Read

IPM.Schedule.Meeting.Resp.*

Microsoft.Outlook.RSS

IPM.Post.Rss.*

Microsoft.Outlook.Sharing.Compose

IPM.Sharing.*

Microsoft.Outlook.Sharing.Read

IPM.Sharing.*

Microsoft.Outlook.Task

IPM.Task.* et IPM.TaskRequest.*

IRibbonControl.Context

Objet Inspector (éventuellement en anglais)

Remarques

Lorsque Outlook 2010 affiche le premier inspecteur pour une classe de message intégrée, Outlook appelle la méthode GetCustomUI de l’interface IRibbonExtensibility et spécifie l’ID de ruban dans le paramètre RibbonID pour le complément. Le complément doit mettre en œuvre la méthode GetCustomUI de telle sorte que GetCustomUI renvoie le balisage XML approprié basé sur RibbonID.

Utilisez la propriété CurrentItem (éventuellement en anglais) de l’objet Inspector pour renvoyer l’objet de niveau élément tel que MailItem (éventuellement en anglais), AppointmentItem (éventuellement en anglais), ContactItem (éventuellement en anglais) ou TaskItem (éventuellement en anglais).

Exemple de balisage XML

  
<ribbon>
    <tabs>
        <tab id="MyTab"
            getVisible="MyTab_GetVisible"
            label="MyTab">
            <group label="MyGroup" id="MyGroup" >
                <button id="MyButton"
                    size="large"
                    label="MyButton"
                    imageMso="HappyFace"
                    onAction="OnMyButtonClick"/>
            </group>
        </tab>
    </tabs>
</ribbon>

Exemple d’interface utilisateur

Figure 2. Développement du ruban de l’inspecteur

Développement du Ruban de l’inspecteur

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Folder (éventuellement en anglais)

Remarques

Lorsque Outlook 2010 affiche le menu contexte le suivant, un dossier est sélectionné dans la Liste des dossiers dans le volet de navigation.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuFolder">
        <button id="MyContextMenuFolder"
            label="ContextMenuFolder"
            onAction="OnMyButtonClick" />
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 3. Développement du menu contextuel pour un dossier dans la Liste des dossiers

Développement du menu contextuel pour un dossier

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Folder

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, le dossier de recherche racine, Dossiers de recherche, est sélectionné dans la Liste des dossiers dans le volet de navigation.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuSearchRoot">
        <button id="MyContextMenuSearchRoot"
            label="ContextMenuSearchRoot"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 4. Développement du menu contextuel pour le dossier de recherche racine

Développement du menu contextuel pour un dossier de recherche racine

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Store (éventuellement en anglais)

Remarques

Lorsque Outlook 2010 affiche le menu contexte le suivant, un dossier de stockage est sélectionné dans la Liste des dossiers du volet de navigation.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuStore">
        <button id="MyContextMenuStore"
            label="ContextMenuStore"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 5. Développement du menu contextuel pour un dossier de stockage

Développement du menu contextuel pour un dossier de stockage

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Selection (éventuellement en anglais)

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, un élément du courrier est sélectionné dans l’affichage actuel.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuMailItem">
        <button id="MyContextMenuMailItem"
            label="ContextMenuMailItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 6. Développement du menu contextuel pour un élément de courrier

Développement du menu contextuel pour un élément de courrier

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Selection

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, plusieurs éléments sont sélectionnés dans l’affichage actuel.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuMultipleItems">
        <button id="MyContextMenuMultipleItems"
            label="ContextMenuMultipleItems"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 7. Développement du menu contextuel pour plusieurs éléments sélectionnés

Développement du menu contextuel pour plusieurs éléments sélectionnés

ntextuel pour un rendez-vous ou une demande de réunion

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Selection

Remarques

Outlook 2010 affiche le menu contextuel suivant, un rendez-vous ou une demande de réunion est sélectionné dans l’affichage Calendrier actuel.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuCalendarItem">
        <button id="MyContextMenuCalendarItem"
            label="ContextMenuCalendarItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 8. Développement du menu contextuel pour une demande de réunion dans le calendrier de l’organisateur de la réunion

Développement du menu contextuel pour une demande de réunion

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Selection

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, un élément Tâche est sélectionné dans l’affichage Tâche actuel.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuTaskItem">
        <button id="MyContextMenuTaskItem"
            label="ContextMenuTaskItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 9. Développement du menu contextuel pour un élément Tâche

Développement du menu de contenu pour un élément de tâche

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Selection

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, un élément Contact est sélectionné dans l’affichage actuel.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuContactItem">
        <button id="MyContextMenuContactItem"
            label="ContextMenuContactItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 10. Développement du menu contextuel pour un élément Contact

Développement du menu contextuel pour un élément de contact

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Selection

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, un élément Journal est sélectionné dans l’affichage actuel.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuJournalItem">
        <button id="MyContextMenuJournalItem" 
            label="ContextMenuJournalItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 11. Développement du menu contextuel pour un élément Journal

Développement du menu contextuel pour un élément de journal

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Selection

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, un élément Note est sélectionné dans l’affichage actuel.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuNoteItem">
        <button id="MyContextMenuNoteItem"
            label="ContextMenuNoteItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 12. Développement du menu contextuel pour un élément Note

Développement du menu contextuel pour un élément de note

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet OutlookBarShortcut (éventuellement en anglais)

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, un raccourci est sélectionné dans le module Raccourcis .

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuShortcut">
        <button id="MyContextMenuShortcut"
            label="ContextMenuShortcut"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 13. Développement du menu contextuel pour un raccourci dans le module Raccourcis

Développement du menu contextuel pour un raccourci

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet AttachmentSelection (éventuellement en anglais)

Remarques

Lorsque Outlook 2010 affiche le menu contextuel suivant, une ou plusieurs pièces jointes sont sélectionnées dans le Volet de lecture dans l’explorateur ou dans un inspecteur.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuAttachment">
        <button id="MyContextMenuAttachment"
            label="ContextMenuAttachment"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 14. Développement du menu contextuel pour une ou plusieurs pièces jointes dans le volet de lecture

Développement du menu contextuel pour les pièces jointes

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet View (éventuellement en anglais)

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur affiche le menu contextuel dans un affichage Tableau.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuTableView">
        <button id="MyContextMenuTableView"
            label="ContextMenuTableView"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 15. Développement du menu contextuel dans un affichage Tableau

Extending the context menu in a table view

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet View

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur affiche le menu contextuel dans un affichage Calendrier.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuCalendarView">
        <button id="MyContextMenuCalendarView" 
            label="ContextMenuCalendarView" 
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 16. Développement du menu contextuel dans un affichage Calendrier

Développement du menu contextuel dans un calendrier

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet View

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur affiche le menu contextuel dans un affichage Carte.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuCardView">
        <button id="MyContextMenuCardView" 
            label="ContextMenuCardView" 
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 17. Développement du menu contextuel dans un affichage Carte

Développement du menu contextuel dans une carte

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet View

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur affiche le menu contextuel dans un affichage chronologique.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuTimelineView">
        <button id="MyContextMenuTimelineView" 
            label="ContextMenuTimelineView" 
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 18. Développement du menu contextuel dans un affichage chronologique

Développement du menu contextuel dans une chronologie

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu suivant lorsqu’un utilisateur pointe sur Organiser par dans le menu contextuel d’un champ dans un affichage Tableau.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuTableArrangeBy">
        <button id="MyContextMenuTableArrangeBy" 
            label="ContextMenuTableArrangeBy" 
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 19. Développement du menu Organiser par dans un affichage Tableau

Développement du menu Organiser par dans une table

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur clique avec le bouton droit sur l’échelle de temps dans un affichage Calendrier.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuCalendarViewTimeBar">
        <button id="MyContextMenuCalendarViewTimeBar" 
            label="ContextMenuCalendarViewTimeBar" 
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 20. Développement du menu contextuel pour l’échelle de temps dans un affichage Calendrier

Développement du menu contextuel pour la barre de l’heure

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur clique avec le bouton droit sur la barre Disponibilité dans un affichage Calendrier.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuCalendarViewFreeBusyBar">
        <button id="MyContextMenuCalendarViewFreeBusyBar" 
            label="ContextMenuCalendarViewFreeBusyBar" 
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 21. Développement du menu contextuel pour la barre Disponibilité dans un affichage Calendrier

Développement du menu contextuel pour la barre libre/occupé

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur clique avec le bouton droit sur un en-tête de colonne dans un affichage Tableau.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuTableViewColumn">
        <button id="MyContextMenuTableViewColumn" 
            label="ContextMenuTableViewColumn" 
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 22. Développement du menu contextuel pour une colonne dans un affichage Tableau

Développement du menu contextuel pour une colonne de table

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur clique avec le bouton droit sur une catégorie ou, si aucune catégorie n’a été spécifiée, l’utilisateur clique avec le bouton droit sous la colonne Catégorie dans un affichage Tableau.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuCategories">
        <button id="MyContextMenuCategories"
            label="ContextMenuCategories"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 23. Développement du menu contextuel pour une catégorie

Développement du menu contextuel pour une catégorie

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur affiche le menu contextuel pour un indicateur rapide.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuQuickFlags">
        <button id="MyContextMenuQuickFlags"
            label="ContextMenuQuickFlags"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 24. Développement du menu contextuel pour des indicateurs rapides

Développement du menu contextuel pour les indicateurs rapides

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur affiche le menu contextuel pour un élément du courrier avec indicateur dans la barre des tâches.

Exemple de balisage XML

<contextMenus>    
    <contextMenu idMso="ContextMenuFlaggedMailItem">
        <button id="MyContextMenuFlaggedMailItem"
            label="ContextMenuFlaggedMailItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>
</contextMenus>

Exemple d’interface utilisateur

Figure 25. Développement du menu contextuel pour un élément du courrier avec indicateur

Développement du menu contextuel pour un élément de courrier avec indicateur

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu contextuel suivant lorsqu’un utilisateur affiche de menu contextuel pour un élément du courrier avec indicateur dans la barre des tâches.

Exemple de balisage XML

<contextMenus>    
    <contextMenu idMso="ContextMenuFlaggedContactItem">
        <button id="MyContextMenuFlaggedContactItem"
            label="ContextMenuFlaggedContactItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>
</contextMenus>

Exemple d’interface utilisateur

Figure 26. Développement du menu contextuel pour un élément Contact avec indicateur

Développement du menu contextuel pour un élément de contact avec indicateur

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu suivant lorsqu’un utilisateur sélectionne Nouveaux éléments dans l’onglet Accueil du ruban de l’explorateur pour le module Courrier. Bien que le menu Nouveaux éléments ne soit pas un menu contextuel, le balisage d’un élément de menu personnalisé doit être placé dans les balises <contextMenus></contextMenus>. De cette manière, vous pouvez ajouter un commentaire pour un élément qui est basé sur une classe de message personnalisée dans le menu Nouveaux éléments intégré.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="MenuMailNewItem">
        <button id="MyMenuMailNewItem"
            label="MenuNewMailItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 27. Développement du menu Nouveaux éléments dans le module Courrier

Développement du menu des nouveaux éléments pour le module de courrier

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu suivant lorsqu’un utilisateur clique sur Nouveaux éléments dans l’onglet Accueil du ruban de l’explorateur pour le module Calendrier. Bien que le menu Nouveaux éléments ne soit pas un menu contextuel, le balisage d’un élément de menu personnalisé doit être placé dans les balises <contextMenus></contextMenus>. De cette manière, vous pouvez ajouter un commentaire pour un élément qui est basé sur une classe de message personnalisée dans le menu Nouveaux éléments intégré.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="MenuCalendarNewItem">
        <button id="MyMenuCalendarNewItem"
            label="MenuCalendarNewItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 28. Développement du menu Nouveaux éléments pour le module Calendrier

Développement du menu des nouveaux éléments pour le module Calendrier

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu suivant lorsqu’un utilisateur clique sur Nouveaux éléments dans l’onglet Accueil du ruban de l’explorateur pour le module Contacts. Bien que le menu Nouveaux éléments ne soit pas un menu contextuel, le balisage d’un élément de menu personnalisé doit être placé dans les balises <contextMenus></contextMenus>. De cette manière, vous pouvez ajouter un commentaire pour un élément qui est basé sur une classe de message personnalisée dans le menu Nouveaux éléments intégré.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="MenuContactsNewItem">
        <button id="MyMenuContactsNewItem"
            label="MenuContactsNewItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 29. Développement du menu Nouveaux éléments dans le module Contacts

Développement du menu des nouveaux éléments pour le module Contacts

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu suivant lorsqu’un utilisateur clique sur Nouveaux éléments dans l’onglet Accueil du ruban de l’explorateur pour le module Tâches. Bien que le menu Nouveaux éléments ne soit pas un menu contextuel, le balisage d’un élément de menu personnalisé doit être placé dans les balises <contextMenus></contextMenus>. De cette manière, vous pouvez ajouter un commentaire pour un élément qui est basé sur une classe de message personnalisée dans le menu Nouveaux éléments intégré.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="MenuTasksNewItem">
        <button id="MyMenuTasksNewItem"
            label="MenuTasksNewItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 30. Développement du menu Nouveaux éléments dans le module Tâches

Développement du menu des nouveaux éléments pour le module de tâche

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu suivant lorsqu’un utilisateur clique sur Nouveaux éléments dans l’onglet Accueil du ruban de l’explorateur pour le module Journal. Bien que le menu Nouveaux éléments ne soit pas un menu contextuel, le balisage d’un élément de menu personnalisé doit être placé dans les balises <contextMenus></contextMenus>. De cette manière, vous pouvez ajouter un commentaire pour un élément qui est basé sur une classe de message personnalisée dans le menu Nouveaux éléments intégré.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="MenuJournalNewItem">
        <button id="MyMenuJournalNewItem"
            label="MenuJournalNewItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 31. Développement du menu Nouveaux éléments dans le module Journal

Développement du menu des nouveaux éléments pour le module Journal

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer

Remarques

Outlook 2010 affiche le menu suivant lorsqu’un utilisateur clique sur Nouveaux éléments dans l’onglet Accueil du ruban de l’explorateur pour le module Notes. Bien que le menu Nouveaux éléments ne soit pas un menu contextuel, le balisage d’un élément de menu personnalisé doit être placé dans les balises <contextMenus></contextMenus>. De cette manière, vous pouvez ajouter un commentaire pour un élément qui est basé sur une classe de message personnalisée dans le menu Nouveaux éléments intégré.

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="MenuNotesNewItem">
        <button id="MyMenuNotesNewItem"
            label="MenuNotesNewItem"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 32. Développement du menu Nouveaux éléments dans le module Notes

Développement du menu des nouveaux éléments pour le module Notes

ID de ruban

Microsoft.Mso.IMLayerUI

IRibbonControl.Context

Objet Office.IMsoContactCard

Remarques

Outlook 2010 affiche le menu contextuel de personnage lorsque l’utilisateur clique avec le bouton droit sur un expéditeur ou un destinataire d’un élément Outlook. Pour déterminer l’identité de l’expéditeur ou du destinataire, utilisez la propriété Address de l’objet IMsoContactCard dans le modèle objet Office pour obtenir un objet AddressEntry (éventuellement en anglais) dans le modèle objet Outlook, qui représente le destinataire tel qu’illustré dans l’exemple de code suivant.

if (control.Context is Microsoft.Office.Core.IMsoContactCard)
{
    msg = "Context=IMsoContactCard" + "\n";
    Office.IMsoContactCard card = control.Context as Office.IMsoContactCard;
    Outlook.AddressEntry addr =
        Globals.ThisAddIn.Application.Session.GetAddressEntryFromID(
        card.Address);
    if (addr != null)
    {
        msg = msg + addr.Name;
    }
    MessageBox.Show(msg);
}

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuContactCardRecipient">
        <button id="MyContextMenuContactCardRecipient"
            label="ContextMenuContactCardRecipient"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 33. Développement du menu contextuel de personnage pour un destinataire

Développement du menu contextuel de personnages

ID de ruban

Microsoft.Mso.IMLayerUI

IRibbonControl.Context

Objet Office.IMsoContactCard

Remarques

Pour entrer en interaction avec un contact en utilisant un moyen autre que la messagerie électronique, les messages instantanés ou le téléphone, un utilisateur peut spécifier une autre forme dans le menu contextuel apparaissant sur une Carte de visite. Pour afficher une Carte de visite, un utilisateur peut immobiliser le pointeur, cliquer ou double-cliquer sur un expéditeur ou un destinataire d’un élément Outlook.

Pour déterminer l’identité de l’expéditeur ou du destinataire, utilisez la propriété Address de l’objet IMsoContactCard dans le modèle objet Office pour obtenir un objet AddressEntry dans le modèle objet Outlook, qui représente le destinataire comme illustré dans l’exemple de code suivant.

if (control.Context is Microsoft.Office.Core.IMsoContactCard)
{
    msg = "Context=IMsoContactCard" + "\n";
    Office.IMsoContactCard card = control.Context as Office.IMsoContactCard;
    Outlook.AddressEntry addr =
        Globals.ThisAddIn.Application.Session.GetAddressEntryFromID
        (card.Address);
    if (addr != null)
    {
        msg = msg + addr.Name;
    }
    MessageBox.Show(msg);
}

Exemple de balisage XML

  
<contextMenus>    
    <contextMenu idMso="ContextMenuContactCardOverflowDropdown">
        <button id="MyContextMenuContactCardOverflow"
            label="ContextMenuContactCardOverflow"
            onAction="OnMyButtonClick"/>
    </contextMenu>  
</contextMenus>

Exemple d’interface utilisateur

Figure 34. Développement du menu autre interaction pour un contact

Développement de l’autre menu d’interaction pour un contact

Onglets contextuels

ID de ruban

Microsoft.Outlook.Explorer ou RibbonID de l’inspecteur approprié

IRibbonControl.Context

Objet Explorer ou objet Inspector

Remarques

Des onglets contextuels apparaissent lorsqu’un utilisateur sélectionne un objet dans l’interface utilisateur d’Outlook avec l’intention d’éditer ou de modifier cet objet. La personnalisation d’un onglet contextuel est similaire à la personnalisation d’un onglet de ruban intégré, mais le balisage de la personnalisation utilise les balises <contextualTabs></contextualTabs> à la place de <tabs></tabs>. Les onglets contextuels sont utilisés de façon intensive dans Outlook 2010. L’exemple suivant montre comment personnaliser l’onglet contextuel pour les pièces jointes nommé Outils Pièce jointe. Le Menu contextuel de pièce jointe décrit précédemment ajoute un élément de menu contextuel pouvant agir sur la pièce jointe sélectionnée. Pour créer une commande équivalente dans l’onglet contextuel Outils Pièce jointe, vous devez fournir un balisage XML tel que présenté dans l’exemple de balisage XML suivant , puis déterminer la pièce jointe sélectionnée en utilisant l’objet AttachmentSelection renvoyé par IRibbonControl.Context tel qu’illustré dans le fragment de code C# suivant :

    else if (control.Context is Outlook.Explorer)
    {
        msg = "Context=Explorer" + "\n";
        Outlook.Explorer explorer = 
            control.Context as Outlook.Explorer;
            if (explorer.AttachmentSelection.Count >= 1)
            {
                Outlook.AttachmentSelection attachSel =
                    explorer.AttachmentSelection;
                foreach (Outlook.Attachment attach in attachSel)
                {
                    msg = msg + attach.DisplayName + "\n";
                }
            }
            else
            {
                Outlook.Selection selection =
                    explorer.Selection;
                if (selection.Count == 1)
                {
                    OutlookItem olItem =
                        new OutlookItem(selection[1]);
                    msg = msg + olItem.Subject
                        + "\n" + olItem.LastModificationTime;
                }
                else
                {
                    msg = msg + "Multiple Selection Count="
                        + selection.Count;
                }
            }
        }
    }    

Exemple de balisage XML

<contextualTabs>
    <tabSet idMso="TabSetAttachments">
        <tab idMso="TabAttachments">
            <group label="MyGroup" id="MyAttachmentGroup">
                <button id="MyButtonAttachments"
                    size="large"
                    label="MyButtonAttachments"
                    imageMso="HappyFace"
                    onAction="OnMyButtonClick" />
            </group>
        </tab>
    </tabSet>
</contextualTabs>

Exemple d’interface utilisateur

Figure 35. Développement de l’onglet Pièces jointes avec un onglet contextuel Outils Pièce jointe pour un explorateur Outlook

Développement de l’onglet Pièces jointes

Mode Backstage

ID de ruban

Microsoft.Outlook.Explorer

IRibbonControl.Context

Objet Explorer ou objet Inspector

Remarques

Le mode Backstage aide les utilisateurs à trouver les fonctionnalités les plus fréquemment utilisées et à découvrir de nouvelles manières de travailler avec leurs documents. Pour accéder au mode Backstage, cliquez sur l’onglet Fichier qui apparaît à gauche de l’onglet Accueil. Dans Outlook 2010, vous pouvez utiliser le mode Backstage pour exposer des paramètres de niveau application pour un complément. Envisagez la personnalisation du mode Backstage pour remplacer les extensions de pages de propriétés qui étaient accessibles lorsque vous cliquiez sur Outils, puis surOptions dans les versions antérieures d’Outlook. Les extensions de pages de propriétés continuent à fonctionner dans Outlook 2010, mais les utilisateurs risquent de ne pas les trouver facilement. Pour accéder aux extensions de pages de propriétés d’un complément, ouvrez le mode Backstage, cliquez sur la commande Options pour afficher la boîte de dialogue Options Outlook, cliquez sur l’onglet Compléments, puis sur le bouton Options du complément.

Outlook 2010 peut afficher le mode Backstage dans une fenêtre d’explorateur ou d’inspecteur. Utilisez la propriété IRibbonControl.Context pour déterminer si le mode Backstage est hébergé dans une fenêtre d’explorateur ou d’inspecteur.

Un onglet dans le mode Backstage est une unité fonctionnelle. Le mode Backstage contient des onglets par défaut. Par exemple, le mode Backstage pour l’explorateur Outlook contient les onglets Info, Ouvrir, Imprimer et Aide. Si vous souhaitez créer un onglet personnalisé et l’afficher uniquement dans une fenêtre d’explorateur ou d’inspecteur Outlook, utilisez le rappel GetVisible. L’exemple de code C# suivant rend l’onglet MyPlace visible uniquement dans la fenêtre Explorateur.

public bool MyPlace_GetVisible(IRibbonControl control)
{
    if (control.Context is Microsoft.Office.Interop.Outlook.Explorer)
        return true;
    else
        return false;
}

Exemple de balisage XML

<backStage>
    <tab id="MyBackStageTab"
        label="MyTab"
        getVisible="MyBackStageTab_GetVisible">
        <firstColumn>
            <group id="regularGroup"
                label="My Regular Group"
                helperText="My Regular Group Helper Text">
                <primaryItem>
                    <button id="MyHeroButton"
                        label="My Hero Button"
                        imageMso="MagicEightBall"
                        isDefinitive="false"
                        onAction="OnMyButtonClick"
                        screentip="Click to spin the magic eight ball."/>
                </primaryItem>
                <bottomItems>
                    <hyperlink
                        id="hyperlink"
                        label="Office Developer Center"
                        target="https://msdn.microsoft.com/en-  
                            us/office/default.aspx"/>
                    <imageControl id="userImage"
                        getImage="GetCurrentUserImage"/>
                    <layoutContainer id="vertical"
                        align="left"
                        layoutChildren="vertical">
                        <labelControl id="labelControl2" 
                            label="Vertical layout"/>
                        <radioGroup id="myradiogroup1" label="Options">
                            <radioButton id="rb1" label="Option 1"/>
                            <radioButton id="rb2" label="Option 2"/>
                            <radioButton id="rb3" label="Option 3"/>
                        </radioGroup>
                    </layoutContainer>
                    <groupBox id="mygroupbox1" label="Check Boxes">
                        <checkBox id="check1" label="Check Box 1"/>
                        <checkBox id="check2" label="Check Box 2"/>
                        <checkBox id="check3" label="Check Box 3"/>
                    </groupBox>
                    <layoutContainer id="vertical2"
                        align="left"
                        layoutChildren="vertical">
                        <comboBox id="comboBox" label="Color ComboBox">
                            <item id="cbi1" label="Blue"/>
                            <item id="cbi2" label="Magenta"/>
                            <item id="cbi3" label="Cyan"/>
                        </comboBox>
                    </layoutContainer>
                </bottomItems>
            </group>
            <taskGroup id="taskGroup"
                label="My Task Group"
                helperText="My Task Group Helper Text">
                <category id="MyCategory" label="My Category">
                <task id="MyTask"
                    tag="MyTask"
                    isDefinitive="true"
                    label="My Task"
                    imageMso="NewTask"/>
                </category>
            </taskGroup>
        </firstColumn>
        <secondColumn>
            <group id="myemptygroup">
            </group>
        </secondColumn>
    </tab>
</backstage>

Exemple d’interface utilisateur

Figure 36. Développement du mode Backstage pour un explorateur Outlook

Développement de l’affichage Backstage pour un explorateur Outlook

Conclusion

Dans Microsoft Office System 2007, l’interface utilisateur Fluent inclut le ruban, les menus, les info-bulles améliorées, une mini barre d’outils et des raccourcis de clavier qui apparaissent dans diverses applications Office. Office 2010 ajoute le mode Backstage à l’interface utilisateur Fluent. L’interface utilisateur prend en charge de façon étendue la possibilité de personnaliser par programme les composants de l’interface utilisateur Fluent. Par exemple, Outlook 2010 fournit de nombreux moyens d’étendre le ruban dans un explorateur ou un inspecteur, les menus, les menus contextuels et le mode Backstage. Les principes sur lesquels s’appuient les extensions par programme à l’interface utilisateur Fluent sont tous très similaires ; ils impliquent tous l’utilisation de IRibbonExtensibility.GetCustomUI pour spécifier un balisage XML pour l’interface utilisateur personnalisée et l’écriture de rappels dans un complément pour répondre aux actions de l’utilisateur sur l’interface utilisateur personnalisée. La conception d’une extensibilité cohérente simplifie pour les développeurs de compléments Outlook 2010 l’amélioration de leur interface utilisateur.

Ressources supplémentaires

Les ressources suivantes fournissent plus d’informations sur les améliorations par programme à l’interface utilisateur Fluent dans Office 2010 :

Les ressources suivantes fournissent des informations approfondies sur la personnalisation du Ruban. Bien qu’elles concernent Outlook 2007, de nombreux principes s’appliquent toujours à Office 2010.