public ConnectionResult Connect(IApplicationObject app) { try { _App = app; _App.SetDelegate(Delegates.Delegate_ActiveDocumentChanged, new EventHandler(this.ActiveDocumentChanged)); return(ConnectionResult.Connection_Success); } catch { return(ConnectionResult.Connection_Failed); } }
public static IApplicationObject GetApplicationObject() { IApplicationObject property = null; IObjectContext context; if (CoGetObjectContext(ref IID_IObjectContext, out context) == 0) { IGetContextProperties o = (IGetContextProperties)context; if (o != null) { property = (IApplicationObject)o.GetProperty("Application"); Marshal.ReleaseComObject(o); } Marshal.ReleaseComObject(context); } return(property); }
public static IApplicationObject GetApplicationObject() { IApplicationObject app = null; IObjectContext obj; if (0 == NativeMethods.CoGetObjectContext(ref IID_IObjectContext, out obj)) { IGetContextProperties prop = (IGetContextProperties)obj; if (prop != null) { app = (IApplicationObject)prop.GetProperty("Application"); Marshal.ReleaseComObject(prop); } Marshal.ReleaseComObject(obj); } return(app); }
/// <summary> /// 将插件嵌入到应用中。为插件生成操作按钮 /// </summary> /// <param name="app"></param> /// <param name="插件ToolStripMenuItem">插件依托的操作按钮</param> public static void LoadPlugins(IApplicationObject app, ToolStripMenuItem 插件ToolStripMenuItem) { List <ToolStripMenuItem> pluginItemList = new List <ToolStripMenuItem>(); foreach (IPlugin item in PluginLoader.plugins) { PluginInfoAttribute pluginInfo = (PluginInfoAttribute)Attribute.GetCustomAttribute(item.GetType(), typeof(PluginInfoAttribute)); if (item.Connect(app) != ConnectionResult.Connection_Success) { app.Alert("未成功加载插件" + pluginInfo.Name + "" + pluginInfo.Version); } else { //为插件添加入口按钮: ToolStripMenuItem pluginItem = new ToolStripMenuItem(pluginInfo.Name); pluginItemList.Add(pluginItem); pluginItem.Click += item.Response; item.OnLoad(); } } 插件ToolStripMenuItem.DropDownItems.AddRange(pluginItemList.ToArray()); }
/// <summary> /// 连接到主程序 /// </summary> /// <param name="app"></param> /// <returns></returns> public virtual ConnectionResult Connect(IApplicationObject app) { this.app = app; this.documents = app.QueryDocuments(); return(ConnectionResult.Connection_Success); }
public ConnectionResult Connect(IApplicationObject app) { throw new NotImplementedException(); }