#region License // Copyright 2005-2019 Paul Kohler (https://github.com/paulkohler/minisqlquery). All rights reserved. // This source code is made available under the terms of the GNU Lesser General Public License v3.0 // https://github.com/paulkohler/minisqlquery/blob/master/LICENSE #endregion namespace MiniSqlQuery.Core { /// /// An interface for simple plugins for use in extending Mini SQL Query. /// Plugins are loaded from DLL's in the working directory matching the pattern "*.PlugIn.dll" /// /// /// Plugins are created during the load process. /// After all plugins are loaded they are sorted by the property. /// Next the method is called on each in turn supplying a reference to. /// Next the main application form is displayed and after all control creation is complete (i.e. after the Form /// Shown event) a call to is made for each loaded plugin. /// This is where instances should be created and assigned to buttons, menus etc. /// These services provide access to the rest of the editor. /// As the main form is closing down, each plugins method is called. /// The class can be used to handle the basics of a plugin class to speed development. /// public interface IPlugIn { /// /// Gets a brief description of the plugin. /// /// The plugin description. string PluginDescription { get; } /// /// Gets the descriptive name of the plugin. /// /// The plugin name. string PluginName { get; } /// /// Gets the plugin load order. For external plugins start with values over 1000. /// This is a simple way of handling dependencies of other services etc. /// /// The requested load order. int RequestedLoadOrder { get; } /// /// Initializes the plug in, called after the main form is displayed. /// void InitializePlugIn(); /// /// Loads the plugin and stores a reference to the service container. /// Called at application startup time. /// /// The service container, allows access to other serivces in the application. void LoadPlugIn(IApplicationServices services); /// /// Called when the plugin is unloading (typically application shutdown). /// void UnloadPlugIn(); } }