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
Téléchargez le fichier RibbonXOutlook14AddinCS.zip à partir du site Web de la bibliothèque de code MSDN (éventuellement en anglais).
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
Fermez Outlook 2010.
Dans le dossier où vous avez extrait le fichier RibbonXOutlook14AddinCS.zip, ouvrez la solution RibbonXOutlook14AddinCS.
Dans le menu Générer, cliquez sur Générer RibbonXOutlook14AddinCS.
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
Dans l’Explorateur de solutions, sélectionnez RibbonXOutlook14AddinCS.
Dans le menu Projet, sélectionnez Propriétés de RibbonXOutlook14AddinCS, puis cliquez sur l’onglet Débogage.
Sous Action de démarrage, sélectionnez l’option Démarrer le programme externe, puis cliquez sur Parcourir.
Dans le dossier [Lecteur:]\Program Files\Microsoft Office\Office14 , sélectionnez Outlook.exe.
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
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
Menu contextuel Dossier
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
Menu contextuel du dossier de recherche racine
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
Menu contextuel de magasin
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
Menu contextuel pour un élément de courrier
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
Menu contextuel pour plusieurs éléments sélectionnés
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
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
Menu contextuel pour un élément Tâches
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
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 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
Menu contextuel pour un élément Journal
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
Menu contextuel pour un élément de Note
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
Menu contextuel de raccourci
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
Menu contextuel de pièce jointe
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
Menu contextuel de l’affichage Tableau
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
Menu contextuel de l’affichage 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 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
Menu contextuel de l’affichage 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 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
Menu contextuel de l’affichage chronologique
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
Menu de la commande Organiser par
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
Menu contextuel pour l’échelle de temps
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
Menu contextuel pour la barre de disponibilité
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
Menu contextuel pour une colonne de l’affichage Tableau
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
Menu contextuel des catégories
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
Menu contextuel des 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 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
Menu contextuel pour un élément du 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 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
Menu contextuel pour un élément Contact 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
Menu Nouveaux éléments pour le module Courrier
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
Menu 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 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
Menu 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 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
Menu Nouveaux éléments pour le module Tâches
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
Menu 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 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
Menu Nouveaux éléments pour le module Notes
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
Menu contextuel de personnage pour un expéditeur ou un destinataire
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
Menu pour autres interactions
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
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
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
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 :
Introduction au mode Backstage Office 2010 pour les développeurs
Extensibilité du Ruban dans Office 2010 : Activation d’onglet et mise à l’échelle automatique
Shéma de l’interface utilisateur Microsoft Office 2010 Fluent (éventuellement en anglais)
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.