Структура интерфейса
В главной сборке plugin-программы приложением Oktell ищется класс, реализующий нижеприведенный перечень методов. Если при подключении возникают проблемы с сопоставлением, модуль регистрации plugin-программы подскажет, что именно и в каком методе не подходит и не соответствует ожидаемому интерфейсу.
Даже если plugin-программа не использует часть возможных механизмов и не заявляет об их использовании в возвращаемых значениях существующих для этого методов, для ее регистрации необходимо наличие и соответствие всех заявленных в интерфейсе методов. Так, если plugin-программа служит только для отображения форм в разделе внешних модулей, в ее управляющем объекте в любом случае должны присутствовать методы (заглушки в данном случае) для работы с диалоговыми формами.
Возможны варианты использования plugin-программ, осуществляющих невизуальную фоновую деятельность, или деятельность не связанную с режимами диалоговых сценариев и/или работы внешних модулей. В этом случае чаще всего требуется загрузка плагина на старте клиентского приложения. Момент загрузки настраивается администратором при регистрации plugin-программы в Oktell. Стоит отметить, что в этом случае в момент загрузки будет выполнен конструктор, а также метод DoQuery с функцией pluginloaded (20401). Без особой на то необходимости рекомендуется запускать внутренние объекты именно в реализации указанной функции метода DoQuery, а не в конструкторе, так как конструктор вызывается в любом случае, даже если plugin-программа подгружается в административных целях.
В этой статье приведен перечень методов, свойств и событий.
В следующей статье будет структурное описание назначения всех методов.
Структура и возможные варианты параметров и возвращаемых значений будут приведены в последующих разделах.
Методы, необходимые для соответствия интерфейсу
delegate string PluginQueryInvoker ( string xml );
Guid GetId ( ); int GetInterfaceVersion ( int lastknownversion ); string GetModuleVersion ( ); string GetModuleName ( ); string GetDBUpdate ( ); string GetForms ( );
string GetInputParams ( string xml ); string GetOutputParams ( string xml ); string ShowDesign ( string xml ); string PrepareShow ( string xml ); string GetCurrentFillInfo ( string xml ); string StopShow ( string xml ); string GetControlResult ( string xml );
System.Windows.Forms.Control CreateControl ( string xml );
event PluginQueryInvoker OnQuery; string DoQuery ( string xml );