.NET-плагины для MS Office 2007 |
Поддержка плагинов, созданных с использованием средств Microsoft .NET Framework, для программ (Word, Excel, Outlook) из пакета Microsoft Office System 2007.
Разделяемый COM-Addin "Office2007.Plugins" является диспетчером .NET-плагинов.
После запуска программы-хоста диспетчер загружает из сборок в папке bin\Plugins классы, являющиеся наследниками базового класса DkmS.Office2007.PluginsFW.OfficePlugin.
Плагины загружаются только в программы, указанные атрибутом LoadIn, для запуска плагинов используются пункты выпадающего меню, доступного после нажатия на кнопку Plugins, которая добавляется диспетчером к основной инструментальной панели хоста при загрузке. Возможно добавление меню запуска плагинов к основному меню программы и к дополнительной инструментальной панели. Возможно также добавление пункта запуска конкретного плагина к контекстному меню Outlook 2007.
Написаны на языках C# и VB.NET.
В качестве примера папка src\HelloWorld содержит исходные тексты плагинов Hello, Any Programs и Hello, Outlook на языке C# (проект для Visual Studio 2005).
Для программирования собственного плагина создайте проект, в котором опишите класс, производный от OfficePlugin или специализированных классов wordPlugin, outlookPlugin, excelPlugin, реализующий необходимые Вам алгоритмы.
Подключите к проекту сборку Office2007.Plugins.dll.
Алгоритм опишите в теле метода public override void DoAction (Public Overrides Sub DoAction для VB.NET).
При необходимости переопределите метод public override void InitializePlugin (object App, CommandBarControl Menu, Intl intl) для создания собственных элементов управления, локализации и т.д.
При помощи атрибутов LoadIn опишите имена хостов для плагина, атрибутом PlugName задайте надпись на кнопке запуска плагина. (При наследовании от специализированных классов атрибут LoadIn не требуется).
Для использования подсистемы сохранения конфигурации плагинов в свой плагин добавьте свойство, имеющее тип, производный от класса DkmS.Office2007.PluginsFW.Config. При использовании специализированных плагинов дополнительно можно определить public override void методы RestoreConfig() и SaveConfig(), которые вызываются при загрузке и выгрузке плагина соответственно.
При использовании в качестве прототипа класса wordPlugin имеется возможность через атрибут ShortKeyAttribute(string) задать горячую клавишу для запуска плагина (string имеет синтаксис, используемый в методе SendKeys из Windows Scripting Host).
Для плагина с прототипом OutlookPlugin имеется возможность реализовать добавление пункта вызова плагина к контекстному меню вызовом метода
AddToContextMenu(new OlObjectClass[] { OlObjectClass.olNote, OlObjectClass.olTask }); (здесь контекстное меню модифицируется для заметок и задач).
Скомпилируйте Ваш плагин, результат компиляции поместите в папку(или подпапку) bin\Plugins, перезагрузите плагины через пункт Plugins → Configure Plugins for....
Замечание.
В ту же папку поместите сборки (библиотеки), используемые Вашим плагином.
Система Office2007.PluginsFW допускает возможность перевода интерфейса системы (элементы запуска, средства настройки) и плагинов.
Данные для локализации системы находятся в файле office2007.plugins.mui, пример локализации плагина - в Hello, Any Programs.mui. Файлы xml в кодировке UTF-8 могут быть отредактированы подходящим текстовым редактором.