Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Чтобы создать модуль:

1.В среде разработки создайте проект для реализации библиотеки модуля расширения с учетом требований к разработке.
2.Импортируйте библиотеку типов SBPluginInterfaceLibrary.tlb.
3.Создайте класс, реализующий интерфейс IDocumentObserverPlugin.
4.Создайте класс, реализующий интерфейс IDocumentObserver.

Механизм работы модуля:

1.Загрузка модуля расширения выполняется автоматически и происходит дважды: для проверки окружения IPlugin.CheckEnvironment и реальной работы. Время загрузки модуля увеличивается при выполнении дополнительных действий, например, при инициализации.
2.Составление списка имеющихся модулей наблюдения. Происходит при открытии документа.

Библиотеку модуля расширения следует располагать в папке:

<Папка установки клиентской части IS-Builder>\Plugins\<Тип модуля расширения>\<Имя модуля расширения>\,

где <Тип модуля расширения>:

Encryption – для модулей расширения шифрования/подписания;
SpellCheck – для модулей расширения проверки орфографии;
IM – для модулей интеграции с системами мгновенных сообщений;
DocumentObserver – для модулей наблюдения за открытыми документами.

<Имя модуля расширения> – любое имя, уникальное в рамках папки.

3.Поочередно у каждого модуля вызывается метод IDocumentObserverPlugin.SupportsExtension.

Если метод возвращает значение True, то перебор списка прекращается и первый найденный подходящий плагин назначается в качестве обработчика.

4.Для выбранного плагина вызывается метод GetObserver, который возвращает класс наблюдателя за документом, реализующий интерфейс IDocumentObserver.
5.Для полученного класса вызывается метод OpenFileEx.
6.Для полученного класса вызывается метод WaitFile.

Открытие каждого документа происходит в отдельном новом потоке. Поток существует до тех пор, пока не завершится выполнение метода WaitFile. Только после этого закрытие документа считается корректным и изменения документа, если они были, сохраняются в базе данных на сервере.

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }