Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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());
        }
Example #5
0
 /// <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);
 }
Example #6
0
 public ConnectionResult Connect(IApplicationObject app)
 {
     throw new NotImplementedException();
 }