Надстройка Office и лента: порядок инициализации? - PullRequest
0 голосов
/ 15 мая 2011

Что такое порядок инициализации надстройки и ленты?Всегда ли объект надстройки создается до ленты или это может отличаться?

1 Ответ

0 голосов
/ 15 мая 2011

Лента создается путем вызова метода RequestService объекта надстройки для реализации IRibbonExtensibility.
Таким образом, надстройка должна уже существовать.

В шаблонах XML ленты вы можете сделать это вфайл ленты CS:

public partial class ThisAddIn {
    private RibbonManager ribbon;
    ///<summary>Returns an object that extends a feature in the 2007 Microsoft Office system.</summary>
    ///<param name="serviceGuid">A System.Guid that identifies an extensibility interface 
    ///that is supported by applications in the 2007 Microsoft Office system.</param>
    ///<returns>An object that implements the extensibility interface that is identified by serviceGuid.</returns>
    protected override object RequestService(Guid serviceGuid) {
        if (!String.IsNullOrEmpty(JournalPath) && serviceGuid == typeof(IRibbonExtensibility).GUID) {
            if (ribbon == null)
                ribbon = new RibbonManager();
            return ribbon;
        }

        return base.RequestService(serviceGuid);
    }
}
...