Die Symbole in Office-Symbolleisten müssen als IPictureDisp-Objekt übergeben werden. Mit Hilfe der abstrakten Klasse AxHost kann man über einen kleinen Umweg, solche Objekte aus gewöhnlichen .NET Image-Objekten erzeugen.
/// <summary>
/// Wandelt .NET Images in IPictureDisp-Objekte um.
/// </summary>
public class IconConverter : System.Windows.Forms.AxHost
{
/// <summary>
/// Standardkonstruktor.
/// </summary>
private IconConverter() : base(string.Empty)
{
}
/// <summary>
/// Wandelt ein Image-Objekt in eine OLE-Objekt um.
/// </summary>
/// <param name="image">.NET Image-Objekt</param>
/// <returns>OLE-Objekt (Für Office)</returns>
public static stdole.IPictureDisp GetIPictureDispFromImage(System.Drawing.Image image)
{
return (stdole.IPictureDisp)GetIPictureDispFromPicture(image);
}
}
Kommentare zum Snippet