Плагины
Плагины - дополнительные програмные модули, подключаемые к OpenConf. Представляют из себя dll, размещенные в каталоге config. Инициализация плагинов производится по разному взависимости от типа плагина. Принцип обработки следующий: Просмотр каталога config При загрузке Конфигуратора OpenConf просматривает каталог config, загружая все dll, которые там расположены. Поиск строкового ресурса с ID=100 В каждой загруженной dll ищется строковой ресурс с ID=100. Если такой ресурс отсутствует, плагин рассматривается как обычная DLL. В этом случае в dll ищется экспортируемая функция SetConvigService, и если такая функция найдена, то она вызывается, передавая плагину указатель на объект CConfigService, через который плагин может обратиться к различным методам OpenConf. Если строковый ресурс найден, OpenConf пытается создать OLE объект с ProgID (CLSID), указанным в ресурсе. Минимальное требование к объекту - поддержка интерфеса IDispatch. Если попытка создать объект с указанным ProgID неудачна, OpenConf пытается зарегистрировать данную dll в реестре, вызывая функцию DllRegisterServer Инициализация загруженных OLE-плагинов. Для получения доступа к объектной модели Конфигуратора, плагин должен реализовать интерфейс IConfigPlugin. При выполнении этого условия плагин рассматривается как Совместимый. Для него вызывается метод IConfigPlugin::Init, передавая в качестве параметра объект Configurator. Как результат метода плагин может вернуть свое название, под которым он будет зарегистрирован в списке плагинов. Также для него вызывается IConfigPlugin::GetPluginCaps, запрашивая разнообразные параметры его поведения. Визуальное представление плагина. Плагин может представлять из себя ActiveX контрол, который может быть отображен в Конфигураторе. Возможны два варианта отображения плагина. Отображение в правой панели страницы OpenConf Применяется для ActiveX контролов, не реализующих интерфейс IConfigPlugin, а также если плагин задал такое поведение в методе IConfigPlugin::GetPluginCaps Отображение отдельной вкладкой в окне Конфигурации Применяется для ActiveX контролов, реализующих IConfigPlugin, и задавших такое поведение в методе IConfigPlugin::GetPluginCaps Отображение макросов плагина Для каждого плагина по умолчанию в дереве OpenConf отображается список его макросов. Для отмены этого плагин должен явно запретить их отображение в методе IConfigPlugin::GetPluginCaps. Иконка плагина При отображении плагина в дереве OpenConf использует иконки, размещенные в dll-файле плагина. Если файл не содержит иконок, используется стандартный системный значок. По умолчанию используется иконка, размещенная первой в файле. Плагин может явно указать номер иконки в методе IConfigPlugin::GetPluginCaps.
Типы плагинов и требования к ним.
Обычная DLL