Freigeben über


Erweitern der Benutzeroberfläche von Outlook 2010

Zusammenfassung: Sie erfahren, wie Sie zur Anpassung der Benutzeroberfläche in Microsoft Outlook 2010 die Microsoft Office Fluent-Benutzeroberfläche programmgesteuert erweitern können. Die Fluent-Benutzeroberfläche in Microsoft Office 2010 umfasst das Office Fluent-Menüband, Menüs und die Microsoft Office Backstage-Ansicht. In diesem Artikel wird erläutert, wie Sie die Explorer- und Inspektor-Menübänder, Menüs und Kontextmenüs und Backstage-Ansicht der Outlook 2010-Benutzeroberfläche anpassen können. Sie durchlaufen ein Codebeispiel, das veranschaulicht, wie Sie das Menüband, die Kontextmenüs und die Backstage-Ansicht, anpassen können. Außerdem werden verschiedene Aspekte untersucht, die für die Outlook 2010-Benutzeroberfläche gelten.

Letzte Änderung: Mittwoch, 30. Januar 2013

Gilt für: Office 2010 | Outlook 2010 | Visual Studio

Inhalt dieses Artikels
Übersicht
Beispiel-Add-In
Menüband-IDs
Explorer
Inspektor
Kontextmenü für Ordner
Kontextmenü für Stammsuchordner
Kontextmenü für Speicherordner
Kontextmenü für ein E-Mail-Element
Kontextmenü für mehrere ausgewählte Elemente
Kontextmenü für einen Termin oder eine Besprechungsanfrage
Kontextmenü für ein Aufgabenelement
Kontextmenü für ein Kontaktelement
Kontextmenü für ein Journalelement
Kontextmenü für ein Notizelement
Kontextmenü für Verknüpfungen
Kontextmenü für Anlagen
Kontextmenü für Tabellenansicht
Kontextmenü für Kalenderansicht
Kontextmenü für Kartenansicht
Kontextmenü für Zeitachsenansicht
Menü für den Befehl "Anordnen nach"
Kontextmenü für Uhrzeitleiste
Kontextmenü um Frei/Gebucht-Leiste
Kontextmenü für eine Tabellenansichtsspalte
Kontextmenü für Kategorien
Kontextmenü für Direktkennzeichnungssymbole
Kontextmenü für ein gekennzeichnetes E-Mail-Element
Kontextmenü für ein gekennzeichnetes Kontaktelement
Menü "Neue Elemente" für das E-Mail-Modul
Menü "Neue Elemente" für das das Modul "Kalender"
Menü "Neue Elemente" für das Modul "Kontakte"
Menü "Neue Elemente" für das Modul "Aufgaben"
Menü "Neue Elemente" für das Modul "Journal"
Menü "Neue Elemente" für das Modul "Notiz"
Kontextmenü "Person" für einen Absender oder Empfänger
Menü für alternative Interaktionen
Kontextregisterkarten
Backstage-Ansicht
Schlussbemerkung
Weitere Ressourcen

Inhalt

-
Übersicht

-
Beispiel-Add-In

-
Menüband-IDs

-
Explorer

-
Inspektor

-
Kontextmenü für Ordner

-
Kontextmenü für Stammsuchordner

-
Kontextmenü für Speicherordner

-
Kontextmenü für ein E-Mail-Element

-
Kontextmenü für mehrere ausgewählte Elemente

-
Kontextmenü für einen Termin oder eine Besprechungsanfrage

-
Kontextmenü für ein Aufgabenelement

-
Kontextmenü für ein Kontaktelement

-
Kontextmenü für ein Journalelement

-
Kontextmenü für ein Notizelement

-
Kontextmenü für Verknüpfungen

-
Kontextmenü für Anlagen

-
Kontextmenü für Tabellenansicht

-
Kontextmenü für Kalenderansicht

-
Kontextmenü für Kartenansicht

-
Kontextmenü für Zeitachsenansicht

-
Menü für den Befehl "Anordnen nach"

-
Kontextmenü für Uhrzeitleiste

-
Kontextmenü um Frei/Gebucht-Leiste

-
Kontextmenü für eine Tabellenansichtsspalte

-
Kontextmenü für Kategorien

-
Kontextmenü für Direktkennzeichnungssymbole

-
Kontextmenü für ein gekennzeichnetes E-Mail-Element

-
Kontextmenü für ein gekennzeichnetes Kontaktelement

-
Menü "Neue Elemente" für das E-Mail-Modul

-
Menü "Neue Elemente" für das das Modul "Kalender"

-
Menü "Neue Elemente" für das Modul "Kontakte"

-
Menü "Neue Elemente" für das Modul "Aufgaben"

-
Menü "Neue Elemente" für das Modul "Journal"

-
Menü "Neue Elemente" für das Modul "Notiz"

-
Kontextmenü "Person" für einen Absender oder Empfänger

-
Menü für alternative Interaktionen

-
Kontextregisterkarten

-
Backstage-Ansicht

-
Schlussbemerkung

-
Weitere Ressourcen

Übersicht

In diesem Artikel werden die zahlreichen neuen Möglichkeiten zum Anpassen der folgenden Bereiche der Outlook 2010-Benutzeroberfläche beschrieben:

  • Explorer-Menübänder

  • Inspektor-Menübänder

  • Kontextmenüs

  • Menüs vom Typ "Neue Elemente"

  • Kontextmenü für Visitenkarten

  • Kontextregisterkarten

  • Backstage-Ansicht

In diesem Artikel wird insbesondere das Verwenden der Fluent-Benutzeroberflächenerweiterungen zum Anpassen der Komponenten in diesen Bereichen erläutert. Als Erstes müssen Sie der GetCustomUI-Methode der IRibbonExtensibility-Schnittstelle XML-Markup bereitstellen. Verwenden Sie die Menüband-ID der Komponente, die Sie anpassen möchten, zum Bestimmen des XML-Codes, der als Rückgabewert in der GetCustomUI-Methode übergeben werden soll. Ihr XML-Code stellt in der Regel Rückrufe bereit, die Sie zum Reagieren auf einen Schaltflächenklick oder zum Steuern der Sichtbarkeit der Menübandsteuerelemente nutzen können.

Dieser Artikel enthält die IRibbonControl.Context-Eigenschaft, die Sie in Rückrufen der Fluent-Benutzeroberflächenerweiterungen in Ihrem Code erwarten müssen. Darüber hinaus sind XML-Beispielmarkup für jede Benutzeroberflächenkomponente und ein Screenshot enthalten, der die Benutzeroberflächenkomponente veranschaulicht, damit Sie nachvollziehen können, wo die Anpassung auf der Outlook 2010-Benutzeroberfläche erfolgt.

Hinweis

Die Menüband-IDs und Komponenten in diesem Artikel können in der endgültigen Version von Outlook 2010 anders sein. In bestimmten Fällen können die exakten Menüpunkte in einem Menü oder Kontextmenü von der Microsoft Office 2010-Suite und dem Typ des ausgewählten Outlook-Elements abhängen.

Bevor Sie diesen Artikel lesen, sollten Sie bereits grundlegend mit der Erweiterung der Fluent-Benutzeroberfläche mithilfe von Add-Ins vertraut sein. Falls Sie mit der Erweiterbarkeit der Fluent-Benutzeroberfläche nicht vertraut sind, lesen Sie die technischen Artikel im Abschnitt Weitere Ressourcen.

Beispiel-Add-In

Zu diesem Artikel gehört das begleitende Beispiel-Add-In RibbonXOutlook14AddinCS, das in Microsoft Visual C# geschrieben ist und Microsoft Visual Studio 2008 Service Pack 1 sowie Outlook 2010 erfordert.

Übersicht

Das Beispiel-Add-In veranschaulicht das Anpassen der Menübänder, Menüs, Kontextmenüs und Backstage-Ansicht in Outlook 2010. Das in Visual Studio 2008 Tools für Office entwickelte Add-In fügt Menübandsteuerelemente, ein benutzerdefiniertes Menü, Kontextmenüpunkte und Backstage-Ansichtssteuerelemente hinzu und zeigt anschließend ein Meldungsfeld an, wenn der Benutzer auf das Steuerelement oder den Menüpunkt klickt. Das Add-In bietet ein visuelles Element für jeden Eingabepunkt auf der Outlook 2010-Benutzeroberfläche, den Sie über die Erweiterung der Fluent-Benutzeroberfläche anpassen können.

Das Beispiel-Add-In bietet einige Zusatzfunktionen, die veranschaulichen, wie Sie bestimmte Problembereiche auf der Outlook 2010-Benutzeroberfläche in den Griff bekommen. Angenommen, Sie möchten auf dem Menüband eine benutzerdefinierte Gruppe ausschließlich für empfangene E-Mail-Elemente anzeigen. Das Beispiel-Add-In zeigt die benutzerdefinierte Menübandregisterkarte nur an, wenn das im Outlook-Explorer ausgewählte Elemente ein empfangenes E-Mail-Element ist oder das empfangene E-Mail-Element in einem Inspektor angezeigt wird. Wenngleich diese Aufgabe anfänglich simpel erscheint, handelt es sich tatsächlich um eine komplexes Angelegenheit, da Outlook mehrere Explorer- oder Inspektor-Fenster anzeigen kann und Ihr Code entsprechend reagieren muss. In zwei geöffneten Explorer-Fenstern müssen Sie ggf. die benutzerdefinierte Registerkarte in dem Fenster ausblenden, in dem eine Besprechung ausgewählt ist, aber die benutzerdefinierte Registerkarte in dem Fenster anzeigen, in dem ein empfangenes E-Mail-Element ausgewählt ist. Sobald Ihnen klar ist, wie das Beispiel-Add-In funktioniert, können Sie die Wrapperklasse im Beispiel nutzen, um Ihre eigene Lösung zu entwickeln, welche die Anzeige Ihrer Befehlsbenutzeroberfläche in mehreren Outlook-Fenstern koordiniert.

Installationsanweisungen

So laden Sie das Installationspaket mit dem Beispielcode herunter

  1. Laden Sie die Datei RibbonXOutlook14AddinCS.zip von der Website der MSDN Code Gallery herunter.

  2. Entpacken Sie die ZIP-Datei in einen Ordner Ihrer Wahl. Unter Windows Vista lautet der Standardpfad für Visual Studio 2008 Tools für Office-Projekte wie folgt: C:\Benutzer\Benutzername\Dokumente\Visual Studio 2008\Projects.

So führen Sie das Beispiel für die Erweiterungen des Outlook-Menübands aus

  1. Schließen Sie Outlook 2010.

  2. Öffnen Sie im Ordner, in dem Sie die Datei RibbonXOutlook14AddinCS.zip entpackt haben, die Projektmappe RibbonXOutlook14AddinCS.

  3. Klicken Sie im Menü Erstellen auf RibbonXOutlook14AddinCS erstellen.

  4. Starten Sie Outlook 2010, um das Add-In im Ausführungsmodus zu starten, oder drücken Sie F5, um es im Debugmodus zu starten. Wenn Outlook nicht im Debugmodus gestartet wird, führen Sie die folgenden Schritte aus.

So starten Sie Outlook im Debugmodus

  1. Wählen Sie im Projektmappen-Explorer die Option RibbonXOutlook14AddinCS aus.

  2. Wählen Sie im Menü Projekt die Option Eigenschaften von RibbonXOutlook14AddinCS aus, und klicken Sie auf die Registerkarte Debuggen.

  3. Wählen Sie unter Startaktion die Option Externes Programm starten aus, und klicken Sie dann auf Durchsuchen.

  4. Wählen Sie im Ordner [Laufwerk:]\Programme\Microsoft Office\Office14 die Option Outlook.exe aus.

  5. Drücken Sie F5, um das Add-In im Debugmodus zu starten.

Durchlaufen des Codes

Die Projektmappe Outlook14RibbonXAddinCS wurde mit Microsoft Visual Studio 2008 Service Pack 1 entwickelt und basiert auf der manuellen Erstellung von XML-Markupdateien anstatt auf dem Menüband-Designer in den Visual Studio-Tools für Office. Die wichtigste Architekturfunktion ist der Einsatz von Wrapperklassen (OutlookExplorer.cs für Explorer und OutlookInspector.cs für Inspektoren) für das Verarbeiten mehrerer Outlook-Fenster. Die Wrapperklassen werden mithilfe der generischen C#-Klasse List(T) implementiert.

Hinweis

Wenn Sie keinen verwalteten Code schreiben, müssen Sie systemeigenen C++-Code schreiben, der den Einsatz dieser Wrapperklassen nachahmt.

Zuerst werden die folgenden Instanzvariablen auf Klassenebene in der ThisAddin-Standardklasse in Visual Studio 2008 mit Visual Studio Tools für Office deklariert.

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
        ...
    }
}

Nachdem die Instanzvariablen deklariert wurden, werden sie in der Startup-Methode der ThisAddin-Klasse verwendet, um alle Visual Studio 2008 mit Visual Studio Tools für Office-Add-Ins bereitzustellen. In der Startup-Methode, die in der Regel nach dem Start von Outlook auftritt, verbindet sich der Code zuerst mit einem Ereignishandler, um auf das NewExplorer -Ereignis für das Outlook-Auflistungsobjekt Explorers zu reagieren. Nach Verarbeitung des NewExplorer-Ereignisses wird das aktive Explorer-Fenster mithilfe des folgenden Codes hinzugefügt.

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);
    }
}

Nach dem Start von Outlook ruft Office die GetCustomUI-Methode der IRibbonExtensibility-Schnittstelle auf, die das benutzerdefinierte XML-Markup lädt. In Outlook 2007 rief Office die GetCustomUI-Methode auf, sobald die erste Instanz eines bestimmten Inspektortyps, z. B. ein Kontakt oder Termin, angezeigt wurde. In Outlook 2010 ruft Office die GetCustomUI-Methode vor der ThisAddin.Startup-Methode auf, um das Laden von Menübandanpassungen für das Outlook-Explorer-Menüband zu unterstützen. Für jedes Menüband in Outlook wird die GetCustomUI-Methode aufgerufen, und Office übergibt die ID-Zeichenfolge des Menübands, welche das Menüband bestimmt, das in Outlook geladen wird. Eine vollständige Liste der Menüband-IDs finden Sie im Abschnitt Menüband-IDs.

Im Beispielcode gibt es drei XML-Markupdateien:

  • ContactCard.xml

  • Explorer.xml

  • ReadMail.xml

ContactCard.xml enthält XML-Markup für Kontextmenüs auf der Visitenkarte. Explorer.xml enthält XML-Markup für das Explorer-Menüband, Kontextmenüs und die Backstage-Ansicht. Readmail.xml enthält XML-Markup für einen Inspektor für das Lesen von E-Mail.

Um diese Funktionsweise besser zu verstehen, untersuchen Sie den folgenden Code in der GetCustomUI-Methode der OutlookRibbonX-Klasse.

        
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;
    }
}

In der Beispiellösung finden Sie eine vollständige Auflistung von ContactCard.xml, Explorer.xml und ReadMail.xml. Nach dem Laden von benutzerdefiniertem XML-Markup für jedes Add-In muss Code in den Rückrufen der Fluent-Benutzeroberflächenerweiterungen geschrieben werden, um die Registerkarte MyTab abhängig davon ein- oder auszublenden, ob das ausgewählte Element im Explorer ein empfangenes E-Mail-Element ist. Zum Vervollständigen dieses Szenarios müssen Sie eine weitere Gruppe von Ereignissen im Konstruktor der OutlookExplorer-Klasse verbinden.

        
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);
}

Der SelectionChange-Ereignishandler leicht nachvollziehbar. Das SelectionChange-Ereignis erfolgt, wenn der Benutzer die Auswahl im Explorer-Fenster ändert. Wenn SelectionChange erfolgt, wird die RaiseInvalidateControl-Methode aufgerufen und die Steuerelement-ID "MyTab" an die Methode übergeben. RaiseInvalidateControl ruft den Ereignisdelegat WrappedWindow_InvalidateControl in der ThisAddin-Klasse auf.

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

Die m_Ribbon>-Variable stellt ein IRibbonUI-Objekt dar. Wenn die InvalidateControl-Methode des IRibbonUI-Objekts aufgerufen wird, erfolgen für das Steuerelement "MyTab" Menübandrückrufe. Sie können auch die Invalidate-Methode des IRibbonUI-Objekts aufrufen, doch verursacht diese Methode Rückrufe für alle Steuerelemente, die Ihr Add-In dem Menüband hinzufügt. Im Allgemeinen sollten Sie Ihre Invalidierung eher fein abgestuft als global gestalten, insbesondere wenn Ihre Rückrufe Bildressourcen mithilfe eines getImage-Rückrufs laden. Für das Steuerelement "MyTab" wurde ein getVisible-Rückruf in der RibbonXAddin-Klasse definiert, welche die Sichtbarkeit der Registerkarte steuert. Wenn der getVisible-Rückruf True zurückgibt, ist die Registerkarte sichtbar. Andernfalls ist "MyTab" ausgeblendet. Der folgende Code entspricht dem vollständigen MyTab_GetVisible-Rückruf.

        
// 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;
    }
}

In diesem Durchlauf wurden die wichtigsten Möglichkeiten zum Erweitern des Menübands in Outlook 2010 angesprochen. Zusammenfassend muss Ihr Code Folgendes unterstützen:

  • Die Verwendung mehrerer Explorer- oder Inspektorenfenster in Outlook 2010. Umschließen Sie die Fenster in einer getrennten Klasseninstanz, die Ereignisse entsprechend dem jeweiligen Fenster auslösen kann.

  • Die entsprechende Verwendung der Methode InvalidateControl oder Invalidate der IRibbonUI-Schnittstelle zum Bewirken, dass Rückrufe erfolgen.

  • Die Auswertung verschiedener Elementtypen (basierend auf der Nachrichtenklasse, vordefinierten Eigenschaften oder benutzerdefinierten Eigenschaften eines bestimmten Elementtyps) in sowohl Ereignishandlern als auch Menübandrückrufen.

Menüband-IDs

Die folgende Tabelle enthält die Menüband-IDs, die an die GetCustomUI-Methode der IRibbonExtensibility-Schnittstelle übergeben werden. Bestimmen Sie anhand der Menüband-ID den XML-Code, der an die GetCustomUI-Methode zurückgegeben werden soll.

Tabelle 1 – Menüband-IDs und Nachrichtenklasse

Menüband-ID

Nachrichtenklasse

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 oder 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.* und IPM.TaskRequest.*

Microsoft.Outlook.Explorer

Entfällt. Geben Sie mithilfe dieser Menüband-ID das XML-Markup für Explorer-Menübänder, Kontextmenüs und die Backstage-Ansicht zurück.

Explorer

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Beim Start von Outlook 2010 wird die GetCustomUI-Methode der IRibbonExtensibility-Schnittstelle aufgerufen und die Menüband-ID im RibbonID-Parameter des Add-Ins angegeben. Das Add-In muss die GetCustomUI-Methode so implementieren, dass sofern der RibbonID-Parameter "Microsoft.Outlook.Explorer" lautet, GetCustomUI das XML-Markup für Explorer- und Kontextmenüanpassungen zurückgibt.

Beispiel des XML-Markups

  
<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>

Benutzeroberflächenbeispiel

Abbildung 1 – Erweitern des Explorer-Menübands

Erweitern des Explorer-Menübands

Inspektor

Menüband-ID

Outlook unterstützt verschiedene Menübändern in Inspektoren, die verschiedene Elementtypen anzeigen. Abhängig von der Nachrichtenklasse des in einem Inspektor anzuzeigenden Elements erwartet das Add-In, dass Outlook die entsprechende Menüband-ID als RibbonID-Parameter an die GetCustomUI-Methode übergibt.

Tabelle 2 – Menüband-IDs und Nachrichtenklasse

Menüband-ID

Nachrichtenklasse

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 oder 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.* und IPM.TaskRequest.*

IRibbonControl.Context

Inspector-Objekt

Hinweise

Wenn Outlook 2010 den ersten Inspektor für eine vordefinierte Nachrichtenklasse anzeigt, ruft Outlook die GetCustomUI-Methode der IRibbonExtensibility-Schnittstelle auf und gibt die Menüband-ID im RibbonID-Parameter für das Add-In an. Das Add-In muss die GetCustomUI-Methode so implementieren, dass GetCustomUI basierend auf dem RibbonID-Parameter das entsprechende XML-Markup zurückgibt.

Mit der CurrentItem-Eigenschaft des Inspector-Objekts können Sie Objekte auf Elementebene zurückgeben, z. B. MailItem, AppointmentItem, ContactItem oder TaskItem.

Beispiel des XML-Markups

  
<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>

Benutzeroberflächenbeispiel

Abbildung 2 – Erweitern des Menübands des Inspektors

Erweitern des Inspektor-Menübands

Kontextmenü für Ordner

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Folder-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist im Navigationsbereich in Ordnerliste ein Ordner ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 3 – Erweitern des Kontextmenüs für einen Ordner in der Ordnerliste

Erweitern des Kontextmenüs um einen Ordner

Kontextmenü für Stammsuchordner

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Folder-Objekt.

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist im Navigationsbereich in Ordnerliste der Stammsuchordner, Suchordner, ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 4 – Erweitern des Kontextmenüs für den Stammsuchordner

Erweitern des Kontextmenüs um einen Stammsuchordner

Kontextmenü für Speicherordner

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Store-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist im Navigationsbereich in Ordnerliste ein Speicherordner ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 5 – Erweitern des Kontextmenüs für einen Speicherordner

Erweitern des Kontextmenüs um einen Speicherordner

Kontextmenü für ein E-Mail-Element

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Selection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist in der aktuellen Ansicht ein E-Mail-Element ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 6 – Erweitern des Kontextmenüs für ein E-Mail-Element

Erweitern des Kontextmenüs um ein E-Mail-Element

Kontextmenü für mehrere ausgewählte Elemente

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Selection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, sind mehrere Elemente in der aktuellen Ansicht ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 7 – Erweitern des Kontextmenüs für mehrere ausgewählte Elemente

Erweitern des Kontextmenüs um mehrere ausgewählte Elemente

Kontextmenü für einen Termin oder eine Besprechungsanfrage

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Selection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist in der aktuellen Kalenderansicht ein Termin oder eine Besprechungsanfrage ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 8 – Erweitern des Kontextmenüs für eine Besprechungsanfrage im Kalender des Besprechungsorganisators

Erweitern des Kontextmenüs um eine Besprechungsanfrage

Kontextmenü für ein Aufgabenelement

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Selection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist in der aktuellen Aufgabenansicht ein Aufgabenelement ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 9 – Erweitern des Kontextmenüs für ein Aufgabenelement

Erweitern des Kontextmenüs um ein Aufgabenelement

Kontextmenü für ein Kontaktelement

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Selection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist in der aktuellen Ansicht ein Kontaktelement ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 10 – Erweitern des Kontextmenüs für ein Kontaktelement

Erweitern des Kontextmenüs um ein Kontaktelement

Kontextmenü für ein Journalelement

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Selection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist in der aktuellen Ansicht ein Journalelement ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 11 – Erweitern des Kontextmenüs für ein Journalelement

Erweitern des Kontextmenüs um ein Journalelement

Kontextmenü für ein Notizelement

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Selection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist in der aktuellen Ansicht ein Notizelement ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 12 – Erweitern des Kontextmenüs für ein Notizelement

Erweitern des Kontextmenüs um ein Notizelement

Kontextmenü für Verknüpfungen

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

OutlookBarShortcut-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, ist im Modul Verknüpfungen eine Verknüpfung ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 13 – Erweitern des Kontextmenüs für eine Verknüpfung im Modul "Verknüpfungen"

Erweitern des Kontextmenüs um eine Verknüpfung

Kontextmenü für Anlagen

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

AttachmentSelection-Objekt

Hinweise

Wenn Outlook 2010 das folgende Kontextmenü anzeigt, sind im Lesebereich im Explorer oder in einem Inspektor eine oder mehrere Anlagen ausgewählt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 14 – Erweitern des Kontextmenüs für Anlagen im Lesebereich

Erweitern des Kontextmenüs um Anlagen

Kontextmenü für Tabellenansicht

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

View-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer das Kontextmenü in einer Tabellenansicht anzeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 15 – Erweitern des Kontextmenüs in einer Tabellenansicht

Erweitern des Kontextmenüs in einer Tabellenansicht

Kontextmenü für Kalenderansicht

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

View-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer das Kontextmenü in einer Kalenderansicht anzeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 16 – Erweitern des Kontextmenüs in einer Kalenderansicht

Erweitern des Kontextmenüs in einer Kalenderansicht

Kontextmenü für Kartenansicht

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

View-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer das Kontextmenü in einer Kartenansicht anzeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 17 – Erweitern des Kontextmenüs in einer Kartenansicht

Erweitern des Kontextmenüs in einer Kartenansicht

Kontextmenü für Zeitachsenansicht

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

View-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer das Kontextmenü in einer Zeitachsenansicht anzeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 18 – Erweitern des Kontextmenüs in einer Zeitachsenansicht

Erweitern des Kontextmenüs in einer Zeitachsenansicht

Menü für den Befehl "Anordnen nach"

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Menü an, wenn ein Benutzer im Kontextmenü für ein Feld in einer Tabellenansicht auf Anordnen nach zeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 19 – Erweitern des Menüs "Anordnen nach" in einer Tabellenansicht

Erweitern des Menüs 'Anordnen nach' in einer Tabellenansicht

Kontextmenü für Uhrzeitleiste

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer in einer Kalenderansicht mit der rechten Maustaste auf die Zeitleiste klickt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 20 – Erweitern des Kontextmenüs für die Zeitleiste in einer Kalenderansicht

Erweitern des Kontextmenüs um die Uhrzeitleiste

Kontextmenü um Frei/Gebucht-Leiste

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer in einer Kalenderansicht mit der rechten Maustaste auf die Frei/Gebucht-Leiste klickt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 21 – Erweitern des Kontextmenüs für die Frei/Gebucht-Leiste in einer Kalenderansicht

Erweitern des Kontextmenüs um die Frei/Gebucht-Leiste

Kontextmenü für eine Tabellenansichtsspalte

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer in einer Tabellenansicht mit der rechten Maustaste auf eine Spaltenüberschrift klickt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 22 – Erweitern des Kontextmenüs für eine Spalte in einer Tabellenansicht

Erweitern des Kontextmenüs um eine Tabellenansichtsspalte

Kontextmenü für Kategorien

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer mit der rechten Maustaste auf eine Kategorie klickt oder, falls keine Kategorie angegeben wurde, unter der Spalte Kategorie in einer Tabellenansicht mit der rechten Maustaste klickt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 23 – Erweitern des Kontextmenüs für eine Kategorie

Erweitern des Kontextmenüs um eine Kategorie

Kontextmenü für Direktkennzeichnungssymbole

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer das Kontextmenü für ein Direktkennzeichnungssymbol anzeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 24 – Erweitern des Kontextmenüs für ein Direktkennzeichnungssymbol

Erweitern des Kontextmenüs um Direktkennzeichnungssymbole

Kontextmenü für ein gekennzeichnetes E-Mail-Element

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Anmerkungen

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer in der Aufgabenleiste das Kontextmenü für ein gekennzeichnetes E-Mail-Element anzeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 25 – Erweitern des Kontextmenüs für ein gekennzeichnetes E-Mail-Element

Erweitern des Kontextmenüs um ein gekennzeichnetes E-Mail-Element

Kontextmenü für ein gekennzeichnetes Kontaktelement

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Kontextmenü an, wenn ein Benutzer in der Aufgabenleiste das Kontextmenü für ein gekennzeichnetes Kontaktelement anzeigt.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 26 – Erweitern des Kontextmenüs für ein gekennzeichnetes Kontaktelement

Erweitern des Kontextmenüs um ein gekennzeichnetes Kontaktelement

Menü "Neue Elemente" für das E-Mail-Modul

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Menü an, wenn ein Benutzer auf dem Explorer-Menüband für das Modul E-Mail auf der Registerkarte Start auf Neue Elemente klickt. Wenngleich das Menü Neue Elemente kein Kontextmenü ist, muss das Markup eines benutzerdefinierten Menüpunkts zwischen <contextMenus></contextMenus>-Tags platziert werden. Auf diese Weise können Sie einen Befehl für ein Element, das auf einer benutzerdefinierten Nachrichtenklasse basiert, dem vordefinierten Menü Neue Elemente hinzufügen.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 27 – Erweitern des Menüs "Neue Elemente" für das Modul "E-Mail"

Erweitern des Menüs 'Neue Elemente' um das E-Mail-Modul

Menü "Neue Elemente" für das das Modul "Kalender"

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Anmerkungen

Outlook 2010 zeigt das folgende Menü an, wenn ein Benutzer auf dem Explorer-Menüband für das Modul Kalender auf der Registerkarte Start auf Neue Elemente klickt. Wenngleich das Menü Neue Elemente kein Kontextmenü ist, muss das Markup eines benutzerdefinierten Menüpunkts zwischen <contextMenus></contextMenus>-Tags platziert werden. Auf diese Weise können Sie einen Befehl für ein Element, das auf einer benutzerdefinierten Nachrichtenklasse basiert, dem vordefinierten Menü Neue Elemente hinzufügen.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 28 – Erweitern des Menüs "Neue Elemente" für das Modul "Kalender"

Erweitern des Menüs 'Neue Elemente' um das Kalendermodul

Menü "Neue Elemente" für das Modul "Kontakte"

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Anmerkungen

Outlook 2010 zeigt das folgende Menü an, wenn ein Benutzer auf dem Explorer-Menüband für das Modul "Kontakte" auf der Registerkarte Start auf Neue Elemente klickt. Wenngleich das Menü Neue Elemente kein Kontextmenü ist, muss das Markup eines benutzerdefinierten Menüpunkts zwischen <contextMenus></contextMenus>-Tags platziert werden. Auf diese Weise können Sie einen Befehl für ein Element, das auf einer benutzerdefinierten Nachrichtenklasse basiert, dem vordefinierten Menü Neue Elemente hinzufügen.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 29 – Erweitern des Menüs "Neue Elemente" für das Modul "Kontakte"

Erweitern des Menüs 'Neue Elemente' um das Kontaktemodul

Menü "Neue Elemente" für das Modul "Aufgaben"

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Anmerkungen

Outlook 2010 zeigt das folgende Menü an, wenn ein Benutzer auf dem Explorer-Menüband für das Modul Aufgaben auf der Registerkarte Start auf Neue Elemente klickt. Wenngleich das Menü Neue Elemente kein Kontextmenü ist, muss das Markup eines benutzerdefinierten Menüpunkts zwischen <contextMenus></contextMenus>-Tags platziert werden. Auf diese Weise können Sie einen Befehl für ein Element, das auf einer benutzerdefinierten Nachrichtenklasse basiert, dem vordefinierten Menü Neue Elemente hinzufügen.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 30 – Erweitern des Menüs "Neue Elemente" für das Modul "Aufgaben"

Erweitern des Menüs 'Neue Elemente' um das Aufgabenmodul

Menü "Neue Elemente" für das Modul "Journal"

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Hinweise

Outlook 2010 zeigt das folgende Menü an, wenn ein Benutzer auf dem Explorer-Menüband für das Modul Journal auf der Registerkarte Start auf Neue Elemente klickt. Wenngleich das Menü Neue Elemente kein Kontextmenü ist, muss das Markup eines benutzerdefinierten Menüpunkts zwischen <contextMenus></contextMenus>-Tags platziert werden. Auf diese Weise können Sie einen Befehl für ein Element, das auf einer benutzerdefinierten Nachrichtenklasse basiert, dem vordefinierten Menü Neue Elemente hinzufügen.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 31 – Erweitern des Menüs "Neue Elemente" für das Modul "Journal"

Erweitern des Menüs 'Neue Elemente' um das Journal-Modul

Menü "Neue Elemente" für das Modul "Notiz"

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt

Anmerkungen

Outlook 2010 zeigt das folgende Menü an, wenn ein Benutzer auf dem Explorer-Menüband für das Modul Notiz auf der Registerkarte Start auf Neue Elemente klickt. Wenngleich das Menü Neue Elemente kein Kontextmenü ist, muss das Markup eines benutzerdefinierten Menüpunkts zwischen <contextMenus></contextMenus>-Tags platziert werden. Auf diese Weise können Sie einen Befehl für ein Element, das auf einer benutzerdefinierten Nachrichtenklasse basiert, dem vordefinierten Menü Neue Elemente hinzufügen.

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 32 – Erweitern des Menüs "Neue Elemente" für das Modul "Notiz"

Erweitern des Menüs 'Neue Elemente' um das Notizenmodul

Kontextmenü "Person" für einen Absender oder Empfänger

Menüband-ID

Microsoft.Mso.IMLayerUI

IRibbonControl.Context

Office.IMsoContactCard-Objekt

Anmerkungen

Outlook 2010 zeigt das Personenkontextmenü an, wenn ein Benutzer mit der rechten Maustaste auf einen Absender oder Empfänger eines Outlook-Elements klickt. Verwenden Sie zum Bestimmen der Identität des Absenders oder Empfängers die Address-Eigenschaft des IMsoContactCard-Objekts im Office-Objektmodell zum Abrufen eines AddressEntry-Objekts in das Outlook-Objektmodell, das den Empfänger darstellt (siehe das folgende Codebeispiel).

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);
}

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 33 – Erweitern des Personenkontextmenüs für einen Empfänger

Erweitern des Kontextmenüs 'Persona'

Menü für alternative Interaktionen

Menüband-ID

Microsoft.Mso.IMLayerUI

IRibbonControl.Context

Office.IMsoContactCard-Objekt

Anmerkungen

Zum Interagieren mit einem Kontakt über ein Medium, das sich von E-Mail, Sofortnachricht oder Telefon unterscheidet, kann ein Benutzer eine alternative Form für das Kontextmenü angeben, das sich auf einer sog. Visitenkarte befindet. Zum Anzeigen einer Visitenkarte kann ein Benutzer den Zeiger auf den Absender oder Empfänger eines Outlook-Elements bewegen, klicken oder mit der rechten Maustaste klicken.

Verwenden Sie zum Bestimmen der Identität des Absenders oder Empfängers die Address-Eigenschaft des IMsoContactCard-Objekts im Office-Objektmodell zum Abrufen eines AddressEntry-Objekts in das Outlook-Objektmodell, das den Empfänger darstellt (siehe das folgende Codebeispiel).

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);
}

Beispiel des XML-Markups

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

Benutzeroberflächenbeispiel

Abbildung 34 – Erweitern des Menüs für alternative Interaktionen für einen Kontakt

Erweitern des Menüs für alternative Interaktionen um einen Kontakt

Kontextregisterkarten

Menüband-ID

"Microsoft.Outlook.Explorer" oder entsprechende "RibbonID" für Inspektor

IRibbonControl.Context

Explorer-Objekt oder Inspector-Objekt

Anmerkungen

Kontextregisterkarten werden angezeigt, wenn ein Benutzer ein Objekt auf der Outlook-Benutzeroberfläche mit dem Ziel auswählt, dieses Objekt zu bearbeiten oder zu ändern. Das Anpassen einer Kontextregisterkarte ähnelt dem Anpassen einer vordefinierten Menübandregisterkarte, doch für das Markup für die Anpassung werden <contextualTabs></contextualTabs>-Tags anstatt <tabs></tabs>-Tags verwendet. Kontextregisterkarten werden in Outlook 2010 umfassend genutzt. Das folgende Beispiel veranschaulicht das Anpassen der Kontextregisterkarte für Anlagen mit dem Namen Anlagentools. Das zuvor beschriebene Kontextmenü für Anlagen fügt einen Kontextmenüpunkt hinzu, der auf die ausgewählte Anlage angewendet werden kann. Zum Erstellen eines entsprechenden Befehls auf der Kontextregisterkarte Anlagentools müssen Sie XML-Markup hinzufügen (siehe das folgende XML-Markupbeispiel) und anschließend die ausgewählte Anlage bestimmen, indem das AttachmentSelection-Objekt verwendet wird, das von IRibbonControl.Context zurückgegeben wird (siehe das folgende C#-Codefragment):

    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;
                }
            }
        }
    }    

Beispiel des XML-Markups

<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>

Benutzeroberflächenbeispiel

Abbildung 35 – Erweitern der Registerkarte "Anlagen" mithilfe der Kontextregisterkarte "Anlagentools" für einen Outlook-Explorer

Erweitern der Registerkarte 'Anlagen'

Backstage-Ansicht

Menüband-ID

Microsoft.Outlook.Explorer

IRibbonControl.Context

Explorer-Objekt oder Inspector-Objekt

Anmerkungen

Die Backstage-Ansicht unterstützt Benutzer beim Auffinden häufig verwendeter Funktionen und Entdecken neuer Möglichkeiten zum Arbeiten mit ihren Dokumenten. Klicken Sie für den Zugriff auf die Backstage-Ansicht auf die Registerkarte Datei, die links neben der Registerkarte Start angezeigt wird. In Outlook 2010 können Sie mithilfe der Backstage-Ansicht Einstellungen auf Anwendungsebene für ein Add-In verfügbar machen. Erwägen Sie das Anpassen der Backstage-Ansicht zum Ersetzen der Eigenschaftenseitenerweiterungen, die in früheren Versionen von Outlook verfügbar waren, wenn Sie zuerst auf Extras und dann auf Optionen geklickt haben. Eigenschaftenseitenerweiterungen funktionieren in Outlook 2010 weiterhin, doch die Benutzer finden sie ggf. nicht mühelos. Öffnen Sie für den Zugriff auf die Add-In-Eigenschaftenseitenerweiterungen die Backstage-Ansicht, klicken Sie auf den Befehl Optionen, um das Dialogfeld Outlook-Optionen anzuzeigen, klicken Sie auf die Registerkarte Add-Ins und dann auf die Schaltfläche Add-In-Optionen.

Outlook 2010 kann die Backstage-Ansicht entweder in einem Explorer- oder Inspektorenfenster anzeigen. Mithilfe der IRibbonControl.Context-Eigenschaft können Sie bestimmen, ob die Backstage-Ansicht in einem Explorer- oder Inspektorenfenster gehostet wird.

Eine Registerkarte in der Backstage-Ansicht ist eine Funktionseinheit. Die Backstage-Ansicht enthält Standardregisterkarten. Die Backstage-Ansicht für den Outlook-Explorer enthält beispielsweise die Registerkarten Info, Öffnen, Drucken und Hilfe. Wenn Sie eine benutzerdefinierte Registerkarte erstellen möchten und nur in einem Outlook-Explorer- oder -Inspektorenfenster anzeigen möchten, verwenden Sie den GetVisible-Rückruf. Das folgende C#-Codebeispiel bewirkt, dass die Registerkarte MyPlace nur im Explorer-Fenster angezeigt wird.

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

Beispiel des XML-Markups

<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>

Benutzeroberflächenbeispiel

Abbildung 36 – Erweitern der Backstage-Ansicht für einen Outlook-Explorer

Erweitern der Backstage-Ansicht für einen Outlook-Explorer

Schlussbemerkung

Im 2007 Microsoft Office System umfasst die Fluent-Benutzeroberfläche das Menüband, Menüs, optimierte QuickInfos, eine Minisymbolleiste und Tastenkombinationen, die in verschiedenen Office-Anwendungen angezeigt werden. Office 2010 fügt der Fluent-Benutzeroberfläche die Backstage-Ansicht hinzu. Die Erweiterungsmöglichkeiten der Fluent-Benutzeroberfläche unterstützen das programmgesteuerte Anpassen von Fluent-Benutzeroberflächenkomponenten. Outlook 2010 bietet beispielsweise zahlreiche Möglichkeiten zur Erweiterung des Menübands in einem Explorer oder Inspektor, der Menüs, der Kontextmenüs und der Backstage-Ansicht. Das Prinzip hinter programmgesteuerten Erweiterungen der Fluent-Benutzeroberfläche ist stets dasselbe: mit der IRibbonExtensibility.GetCustomUI-Methode werden das XML-Markup für die benutzerdefinierte Benutzeroberfläche angegeben und die Rückrufe in ein Add-In geschrieben, das auf Benutzeraktionen auf der benutzerdefinierten Benutzeroberfläche reagiert. Dank des einheitlichen Erweiterbarkeitsprinzips können Entwickler von Outlook 2010-Add-Ins ihre Benutzeroberfläche weiter optimieren.

Weitere Ressourcen

Die folgenden Ressourcen bieten weitere Informationen zu den programmgesteuerten Optimierungen der Fluent-Benutzeroberfläche in Office 2010:

Die folgenden Ressourcen bieten umfassende Informationen zum Anpassen des Menübands bzw. der Multifunktionsleiste. Wenngleich für Outlook 2007 konzipiert, gelten viele der Prinzipien auch für Office 2010.