Skip to content
keepwn edited this page Nov 15, 2014 · 2 revisions

Altman.Plugin.Interface.IHost

主要包括由宿主程序Host提供的一些功能,包括App,Core,Ui和Database,共4个部分

IHost.App

Version AppVersion { get; }

  • 程序版本

string AppCurrentDir { get; }

  • 程序当前目录

string AppPluginDir { get; }

  • 程序插件目录

string AppPluginConfigDir { get; }

  • 程序插件配置路径

string AppBinDir { get; }

  • 程序Bin目录

string AppLanguageDir { get; }

  • 程序多语言目录

IHost.Core

IHost.Ui

void ShowMsgInStatusBar(string msg);

  • 在状态栏显示消息
  • msg消息

void ShowMsgInAppDialog(string msg);

  • 在窗体中显示弹窗消息
  • msg消息

void OpenTabPage(string tabPageName, object control);

  • 打开标签页
  • tabPageName 标签页名
  • control 标签页中显示的控件,类型为Panel

void CloseTabPage(string tabPageName);

  • 关闭标签页
  • tabPageName 标签页名

object GetRightMenu();

  • 获取右键菜单
  • 返回类型为由ContextMenu封装的object

string GetTranslatedText(string strName, string strDefault);

  • 获取翻译后的文本
  • strName 翻译字符串
  • strDefault 默认字符串
  • 如果strName不存在,则返回strDefault;如果strName存在,则返回翻译后的字符串

object GetMenuButton(string namePath, Action actionToDo, bool create = true);

  • 获取菜单按钮
  • namePath 菜单按钮路径,e.g. Plugins/ShellManager/Test
  • actionToDo 绑定点击行为的方法
  • create 若不存在是否创建
  • 返回类型为ButtonMenuItem封装的object。当create=true时,则如果不存在,先创建再返回菜单按钮,否则返回null

IHost.Database

bool CheckTable(string tableName);

  • 检查指定表是否存在
  • tableName 表名

bool InitTable(string tableName, string[] definition);

  • 初始化指定表

  • tableName 表名

  • definition创建表需要的定义参数,例如:

    List<string> de = new List<string>
    {
    "id INTEGER PRIMARY KEY",
    "firstname TEXT NOT NULL",
    "lastname TEXT NOT NULL",
    };
    definition = de.ToArray();
  • 如果表已存在,返回true;如果不存在则创建表,如果创建成功则返回true

DataTable GetDataTable(string tableName);

  • 获取数据库表
  • tableName 表名
  • 返回数据库表

bool Insert(string tableName, Dictionary<string, object> data);

  • 插入数据

  • tableName 表名

  • data 待插入数据,例如:

    var data = new Dictionary<string, object>
    {
    //{"id", null},//主键自增长字段,不需要设置
    {"firstname", "kee"},
    {"lastname", "pwn:)"}
    };
  • 如果插入成功,返回true

bool Update(string tableName, Dictionary<string, object> data, KeyValuePair<string, object> where);

  • 更新数据

  • tableName 表名

  • data 待更新数据,例如:

    var data = new Dictionary<string, object>
    {
    //{"id", null},//主键自增长字段,不需要设置
    {"firstname", "new"},
    {"lastname", "pwn:)"}
    };
  • where 更新条件,例如:

    var where = new KeyValuePair<string, object>("id",10);
  • 如果更新成功,返回true

bool Delete(string tableName, KeyValuePair<string, object> where);

  • 删除数据

  • tableName 表名

  • where 删除条件,例如:

    var where = new KeyValuePair<string, object>("id",10);
  • 如果删除成功,返回true