コード例 #1
0
        private static bool LoadStatics(PluginInformation pi, PluginAssembly pa, bool fForce)
        {
            Plugin plugin = pa.Load(pi.PluginID);

            if ((plugin != null) && (plugin.Instance != null))
            {
                dicStaticPluginInstances[pi.PluginID] = plugin;
                if ((plgEncodingDetector == null) || fForce)
                {
                    QTPlugin.IEncodingDetector instance = plugin.Instance as QTPlugin.IEncodingDetector;
                    if (instance != null)
                    {
                        try {
                            instance.Open(null, null);
                            plgEncodingDetector = instance;
                            return(true);
                        }
                        catch (Exception exception) {
                            HandlePluginException(exception, IntPtr.Zero, pi.Name, "Loading static plugin.");
                        }
                    }
                }
            }
            return(false);
        }
コード例 #2
0
ファイル: PluginManager.cs プロジェクト: dingdayong/QTTabBar
        private static void LoadStaticInstance(PluginInformation pi, PluginAssembly pa)
        {
            Plugin plugin;

            if (!dicStaticPluginInstances.TryGetValue(pi.PluginID, out plugin))
            {
                plugin = pa.Load(pi.PluginID);
                if (plugin == null || plugin.Instance == null)
                {
                    return;
                }
                dicStaticPluginInstances[pi.PluginID] = plugin;
                if (plugin.PluginInformation.PluginType == PluginType.Static)
                {
                    try {
                        plugin.Instance.Open(null, null);
                    }
                    catch (Exception exception) {
                        HandlePluginException(exception, IntPtr.Zero, pi.Name, "Loading static plugin.");
                        return;
                    }
                }
            }
            if (plgEncodingDetector == null)
            {
                plgEncodingDetector = plugin.Instance as IEncodingDetector;
            }
        }
コード例 #3
0
 public Plugin Load(PluginInformation pi, PluginAssembly pa)
 {
     try {
         if ((pa == null) && !dicPluginAssemblies.TryGetValue(pi.Path, out pa))
         {
             return(null);
         }
         Plugin plugin = pa.Load(pi.PluginID);
         if (plugin != null)
         {
             string[] strArray;
             int[]    numArray;
             this.dicPluginInstances[pi.PluginID] = plugin;
             if ((!this.pluginServer.OpenPlugin(plugin.Instance, out strArray) || (strArray == null)) || (strArray.Length <= 0))
             {
                 return(plugin);
             }
             pi.ShortcutKeyActions = strArray;
             if (QTUtility.dicPluginShortcutKeys.TryGetValue(pi.PluginID, out numArray))
             {
                 if (numArray == null)
                 {
                     QTUtility.dicPluginShortcutKeys[pi.PluginID] = new int[strArray.Length];
                     return(plugin);
                 }
                 if (numArray.Length != strArray.Length)
                 {
                     int[] numArray2 = new int[strArray.Length];
                     int   num       = Math.Min(numArray.Length, strArray.Length);
                     for (int i = 0; i < num; i++)
                     {
                         numArray2[i] = numArray[i];
                     }
                     QTUtility.dicPluginShortcutKeys[pi.PluginID] = numArray2;
                 }
                 return(plugin);
             }
             QTUtility.dicPluginShortcutKeys[pi.PluginID] = new int[strArray.Length];
         }
         return(plugin);
     }
     catch (Exception exception) {
         HandlePluginException(exception, IntPtr.Zero, pi.Name, "Loading plugin.");
         QTUtility2.MakeErrorLog(exception, null);
     }
     return(null);
 }
コード例 #4
0
 public Plugin Load(PluginInformation pi, PluginAssembly pa)
 {
     try {
         if (pa == null && !PluginManager.GetAssembly(pi.Path, out pa))
         {
             return(null);
         }
         Plugin plugin = pa.Load(pi.PluginID);
         if (plugin == null)
         {
             return(null);
         }
         dicPluginInstances[pi.PluginID] = plugin;
         plugin.Instance.Open(this, shellBrowser);
         return(plugin);
     }
     catch (Exception exception) {
         PluginManager.HandlePluginException(exception, IntPtr.Zero, pi.Name, "Loading plugin.");
         QTUtility2.MakeErrorLog(exception);
     }
     return(null);
 }
コード例 #5
0
ファイル: PluginServer.cs プロジェクト: svn2github/QTTabBar
 public Plugin Load(PluginInformation pi, PluginAssembly pa)
 {
     try {
         if(pa == null && !PluginManager.GetAssembly(pi.Path, out pa)) {
             return null;
         }
         Plugin plugin = pa.Load(pi.PluginID);
         if(plugin == null) return null;
         dicPluginInstances[pi.PluginID] = plugin;
         plugin.Instance.Open(this, shellBrowser);
         return plugin;
     }
     catch(Exception exception) {
         PluginManager.HandlePluginException(exception, IntPtr.Zero, pi.Name, "Loading plugin.");
         QTUtility2.MakeErrorLog(exception);
     }
     return null;
 }
コード例 #6
0
ファイル: PluginManager.cs プロジェクト: Nicologies/QTTabBar
 private static void LoadStaticInstance(PluginInformation pi, PluginAssembly pa)
 {
     Plugin plugin;
     if(!dicStaticPluginInstances.TryGetValue(pi.PluginID, out plugin)) {
         plugin = pa.Load(pi.PluginID);
         if(plugin == null || plugin.Instance == null) return;
         dicStaticPluginInstances[pi.PluginID] = plugin;
         if(plugin.PluginInformation.PluginType == PluginType.Static) {
             try {
                 plugin.Instance.Open(null, null);
             }
             catch(Exception exception) {
                 HandlePluginException(exception, IntPtr.Zero, pi.Name, "Loading static plugin.");
                 return;
             }
         }
     }
     if(plgEncodingDetector == null) {
         plgEncodingDetector = plugin.Instance as IEncodingDetector;
     }
 }