Чтобы создать модуль:
1. | В среде разработки создайте проект для реализации библиотеки модуля расширения с учетом требований к разработке. |
2. | Импортируйте библиотеку типов SBPluginInterfaceLibrary.tlb. |
Механизм работы модуля:
1. | Загрузка модуля расширения выполняется автоматически и происходит дважды: для проверки окружения IPlugin.CheckEnvironment и реальной работы. Время загрузки модуля увеличивается при выполнении дополнительных действий, например, при инициализации. |
2. | Составление списка имеющихся модулей наблюдения. Происходит при открытии документа. |
Библиотеку модуля расширения следует располагать в папке:
<Папка установки клиентской части IS-Builder>\Plugins\<Тип модуля расширения>\<Имя модуля расширения>\,
где <Тип модуля расширения>:
• | Encryption – для модулей расширения шифрования/подписания; |
• | SpellCheck – для модулей расширения проверки орфографии; |
• | IM – для модулей интеграции с системами мгновенных сообщений; |
• | DocumentObserver – для модулей наблюдения за открытыми документами. |
<Имя модуля расширения> – любое имя, уникальное в рамках папки.
Если метод возвращает значение True, то перебор списка прекращается и первый найденный подходящий плагин назначается в качестве обработчика.
4. | Для выбранного плагина вызывается метод GetObserver, который возвращает класс наблюдателя за документом, реализующий интерфейс IDocumentObserver. |
5. | Для полученного класса вызывается метод OpenFileEx. |
6. | Для полученного класса вызывается метод WaitFile. |
Открытие каждого документа происходит в отдельном новом потоке. Поток существует до тех пор, пока не завершится выполнение метода WaitFile. Только после этого закрытие документа считается корректным и изменения документа, если они были, сохраняются в базе данных на сервере.