XML-Multifunktionsleiste in Outlook - die es anscheinend auf ein bestimmtes Fenster
Ich mache meine ersten Versuch zur Erstellung einer Multifunktionsleisten in Outlook mit XML und habe Probleme Ortung genau, wie zu sagen, mein add-in, ich möchte nur, dass der Band erscheinen auf windows Explorer.
Rat?
Dank.
meine Ribbon1.XML Datei:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group id="MyGroup"
label="My Group">
<button idMso="Delete"/>
</group>
</tab>
<tab idMso="TabMail">
<group idMso="GroupMoveActions"
visible="false">
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Den magischen error-Feld, das erscheint, sagt:
CustomUI Runtime Error in testingOLaddin2
Error found in CustomUI XML of "testingOLaddin2"
Line: 3
Column: 10
Error Code 0x80004005
Failed to find Office control by ID
ID: TabMail
Pro Antrag, meine Band generation-code:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using Office = Microsoft.Office.Core;
using System.Diagnostics;
namespace testingOLaddin2
{
[ComVisible(true)]
public class Ribbon1 : Office.IRibbonExtensibility
{
private Office.IRibbonUI ribbon;
public Ribbon1()
{
}
#region IRibbonExtensibility Members
public string GetCustomUI(string ribbonID)
{
return GetResourceText("testingOLaddin2.Ribbon1.xml");
}
#endregion
#region Ribbon Callbacks
//Create callback methods here. For more information about adding callback methods, select the Ribbon XML item in Solution Explorer and then press F1
public void Ribbon_Load(Office.IRibbonUI ribbonUI)
{
this.ribbon = ribbonUI;
}
#endregion
#region Helpers
private static string GetResourceText(string resourceName)
{
Assembly asm = Assembly.GetExecutingAssembly();
string[] resourceNames = asm.GetManifestResourceNames();
for (int i = 0; i < resourceNames.Length; ++i)
{
if (string.Compare(resourceName, resourceNames[i], StringComparison.OrdinalIgnoreCase) == 0)
{
using (StreamReader resourceReader = new StreamReader(asm.GetManifestResourceStream(resourceNames[i])))
{
if (resourceReader != null)
{
return resourceReader.ReadToEnd();
}
}
}
}
return null;
}
#endregion
}
}
- Wer weiß, wie man dieses Problem lösen die gleichen Fehler, wenn Sie ein add-in gebaut, mit dem Designer, statt XML?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies hängt von der Methode, die Sie verwenden, um erstellen Sie das add-in und ribbon. Wenn Sie die
Methode Sie könnten dies erreichen, indem Sie nur die Rückgabe der ribbon-xml, wenn dem RibbonId-parameter hat den Wert
Bearbeiten
Folgende änderung im code funktionieren könnte:
Ihre
GetCustomUI(string RibbonId)
Wird von Outlook sobald Sie implemenentCreateRibbonExtensibilityObject()
imThisAddIn
Klasse, um wieder eine neue Instanz der Band Klasse. Die Band Klasse ist, wo Sie auf die XML (inGetCustomUI
).Für die XML selbst, müssen Sie die Referenz jedes Outlook-explorer-Typ individuell. Leider gibt es nicht eine allumfassende Methode zu geben, "alle Forscher" in der Ribbon-XML-syntax, soweit ich weiß.
Hier sind einige Beispiele, die Verweise auf das E-Mail-und Kalender-Entdecker:
Microsoft gibt einige Hinweis über
idMso
Attribute für built-in tabs, aber leider ist es begraben in diesem Excel-Tabelle: link