From a34ddc9e9853079448df223b54f088b575f1e84c Mon Sep 17 00:00:00 2001 From: Mathias Simmack Date: Wed, 12 Jul 2006 16:49:18 +0000 Subject: [PATCH] Help 2.0: more suggestions made by FxCop git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1571 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Configuration/AssemblyInfo.cs | 3 + .../Misc/HtmlHelp2/Project/HtmlHelp2.addin | 2 +- .../src/BaseControls/DynamicHelpPad.cs | 88 +++++++++++-------- .../src/BaseControls/IndexResultsPad.cs | 3 +- .../src/BaseControls/SearchResultsPad.cs | 12 ++- .../src/BrowserControl/HelpBrowserCommands.cs | 16 ++-- .../src/BrowserControl/ShowHelpBrowser.cs | 12 +-- .../HtmlHelp2/Project/src/BrowserScheme.cs | 26 +++++- .../HtmlHelp2/Project/src/MsHelpProvider.cs | 30 +++---- .../src/Service/Help2RegistryWalker.cs | 48 +--------- .../Project/src/Service/HtmlHelp2Service.cs | 38 +++++--- 11 files changed, 146 insertions(+), 132 deletions(-) diff --git a/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs b/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs index 5360129e9f..438fe8e91b 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs @@ -7,6 +7,7 @@ using System.Reflection; using System.Runtime.CompilerServices; +using System.Security.Permissions; // Information about this assembly is defined by the following // attributes. @@ -21,3 +22,5 @@ using System.Runtime.CompilerServices; [assembly: AssemblyCulture("")] [assembly: System.Runtime.InteropServices.ComVisible(false)] +[assembly: System.CLSCompliant(false)] +[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] diff --git a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin index 4bf1b31670..7c8d8c6d24 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin +++ b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin @@ -16,7 +16,7 @@ - + diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs index 1cbd479aa9..b222f892aa 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs @@ -11,6 +11,8 @@ namespace HtmlHelp2 using System.Collections.Generic; using System.Collections.Specialized; using System.Drawing; + using System.Globalization; + using System.Security.Permissions; using System.Windows.Forms; using System.Reflection; using ICSharpCode.Core; @@ -35,7 +37,7 @@ namespace HtmlHelp2 public class HtmlHelp2DynamicHelpPad : AbstractPadContent { - protected HtmlHelp2DynamicHelpBrowserControl dynamicHelpBrowser; + HtmlHelp2DynamicHelpBrowserControl dynamicHelpBrowser; private StringCollection dynamicHelpTerms = new StringCollection(); private Point lastPoint = Point.Empty; private string debugPreElement = String.Empty; @@ -51,6 +53,7 @@ namespace HtmlHelp2 dynamicHelpBrowser.RedrawContent(); } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] public HtmlHelp2DynamicHelpPad() { dynamicHelpBrowser = new HtmlHelp2DynamicHelpBrowserControl(); @@ -95,11 +98,11 @@ namespace HtmlHelp2 if (this.enableDebugInfo) { this.debugPreElement += - string.Format("
Current project language: {0}", SharpDevLanguage.GetPatchedLanguage()); + string.Format(CultureInfo.InvariantCulture, "
Current project language: {0}", SharpDevLanguage.GetPatchedLanguage()); dynamicHelpBrowser.CreateDebugPre(this.debugPreElement); } } - catch (Exception ex) + catch (System.Runtime.InteropServices.COMException ex) { LoggingService.Error("Help 2.0: Dynamic Help Call Exception; " + ex.ToString()); } @@ -122,12 +125,13 @@ namespace HtmlHelp2 // debug info this.debugPreElement += - string.Format("{0} ({1}): {2} {3}
", searchTerm, (keywordSearch)?"Kwd":"DH", + string.Format(CultureInfo.InvariantCulture, + "{0} ({1}): {2} {3}
", searchTerm, (keywordSearch)?"Kwd":"DH", topics.Count, (topics.Count==1)?"topic":"topics"); if (result) { - List newTopics = this.SortTopics(topics); + List newTopics = SortTopics(topics); foreach (IHxTopic topic in newTopics) { if ((keywordSearch)?SharpDevLanguage.CheckUniqueTopicLanguage(topic):SharpDevLanguage.CheckTopicLanguage(topic)) @@ -207,7 +211,7 @@ namespace HtmlHelp2 // save the current position if(this.lastPoint != null && this.lastPoint == caret.Position) return null; this.lastPoint = caret.Position; - this.AddToStringCollection(String.Format("!{0}", expr.Expression)); + this.AddToStringCollection(string.Format(CultureInfo.InvariantCulture, "!{0}", expr.Expression)); return ParserService.Resolve(expr, caret.Line + 1, caret.Column + 1, fileName, content); } @@ -228,24 +232,21 @@ namespace HtmlHelp2 private void CallDynamicHelpForFormsDesigner(object selectedObject, GridItem selectedItem) { - try - { - if (selectedObject == null) return; - this.dynamicHelpTerms.Clear(); + if (selectedObject == null) return; + this.dynamicHelpTerms.Clear(); - Type myObject = selectedObject.GetType(); - if (selectedItem != null) + Type myObject = selectedObject.GetType(); + if (selectedItem != null) + { + foreach (Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label)) { - foreach (Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label)) - { - this.AddToStringCollection(String.Format("{0}.{1}", type.FullName, selectedItem.Label)); - } + this.AddToStringCollection(string.Format(CultureInfo.InvariantCulture, + "{0}.{1}", type.FullName, selectedItem.Label)); } - this.AddToStringCollection(myObject.FullName); - - WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList"); } - catch {} + this.AddToStringCollection(myObject.FullName); + + WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList"); } #endregion @@ -271,7 +272,7 @@ namespace HtmlHelp2 } } - private List SortTopics(IHxTopicList topics) + private static List SortTopics(IHxTopicList topics) { if (topics == null || topics.Count == 0) { @@ -301,7 +302,7 @@ namespace HtmlHelp2 return result; } - private int CompareType(string topicType, IHxTopic x, IHxTopic y) + private static int CompareType(string topicType, IHxTopic x, IHxTopic y) { if(x.HasAttribute("TopicType", topicType) && !y.HasAttribute("TopicType", topicType)) return -1; @@ -323,7 +324,7 @@ namespace HtmlHelp2 { WebBrowser axWebBrowser = new WebBrowser(); ToolStrip dynamicHelpToolbar = new ToolStrip(); - int internalIndex = 0; + int internalIndex; string[] toolbarButtons = new string[] { "${res:AddIns.HtmlHelp2.Contents}", "${res:AddIns.HtmlHelp2.Index}", @@ -338,11 +339,13 @@ namespace HtmlHelp2 } } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] public HtmlHelp2DynamicHelpBrowserControl() { this.InitializeComponents(); } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] private void InitializeComponents() { Dock = DockStyle.Fill; @@ -385,9 +388,10 @@ namespace HtmlHelp2 } } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] public void LoadDynamicHelpPage() { - string url = String.Format("res://{0}/context", Assembly.GetExecutingAssembly().Location); + string url = string.Format(CultureInfo.InvariantCulture, "res://{0}/context", Assembly.GetExecutingAssembly().Location); axWebBrowser.Navigate(url); } @@ -425,7 +429,8 @@ namespace HtmlHelp2 #endregion #region WebBrowser Scripting - public void BuildNewChild(string sectionName, string topicName, string topicUrl) + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] + public void BuildNewChild(string sectionName, string topicName, string topicLink) { HtmlElementCollection children = axWebBrowser.Document.Body.GetElementsByTagName("span"); @@ -441,9 +446,9 @@ namespace HtmlHelp2 contentSpan.TagName == "SPAN" && contentSpan.GetAttribute("className") == "content") { - if (!this.DoesLinkExist(contentSpan, topicName, topicUrl)) + if (!DoesLinkExist(contentSpan, topicName, topicLink)) { - HtmlElement newLink = this.CreateNewLink(topicUrl, topicName); + HtmlElement newLink = this.CreateNewLink(topicLink, topicName); if (newLink != null) { contentSpan.AppendChild(newLink); @@ -469,7 +474,7 @@ namespace HtmlHelp2 axWebBrowser.Document.Body.InsertAdjacentElement (HtmlElementInsertionOrientation.BeforeEnd, htmlSection); - HtmlElement newLink = this.CreateNewLink(topicUrl, topicName); + HtmlElement newLink = this.CreateNewLink(topicLink, topicName); if (newLink != null) { linkContent.AppendChild(newLink); @@ -480,23 +485,26 @@ namespace HtmlHelp2 } } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] private HtmlElement CreateNewSection(string sectionName, out HtmlElement linkNode) { HtmlElement span = axWebBrowser.Document.CreateElement("span"); span.SetAttribute("className", "section"); - span.InnerHtml = String.Format - ("" + + span.InnerHtml = string.Format + (CultureInfo.InvariantCulture, + "" + "{1}
", this.internalIndex, sectionName); linkNode = axWebBrowser.Document.CreateElement("span"); linkNode.SetAttribute("className", "content"); - linkNode.Id = String.Format("content_{0}", this.internalIndex); + linkNode.Id = string.Format(CultureInfo.InvariantCulture, "content_{0}", this.internalIndex); span.AppendChild(linkNode); return span; } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] private HtmlElement CreateNewLink(string topicUrl, string topicName) { HtmlElement span = axWebBrowser.Document.CreateElement("a"); @@ -511,13 +519,15 @@ namespace HtmlHelp2 return span; } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] private HtmlElement CreateABreak() { HtmlElement br = axWebBrowser.Document.CreateElement("br"); return br; } - private bool DoesLinkExist(HtmlElement parentNode, string topicName, string topicUrl) + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] + private static bool DoesLinkExist(HtmlElement parentNode, string topicName, string topicUrl) { HtmlElementCollection links = parentNode.GetElementsByTagName("a"); foreach (HtmlElement link in links) @@ -533,9 +543,10 @@ namespace HtmlHelp2 private void OnMouseOver(object sender, HtmlElementEventArgs e) { - if (sender is HtmlElement) + HtmlElement link = sender as HtmlElement; + if (link != null) { - StatusBarService.SetMessage(((HtmlElement)sender).GetAttribute("src")); + StatusBarService.SetMessage(link.GetAttribute("src")); } } @@ -546,13 +557,15 @@ namespace HtmlHelp2 private void OnLinkClick(object sender, HtmlElementEventArgs e) { - if (sender is HtmlElement) + HtmlElement link = sender as HtmlElement; + if (link != null) { - string url = ((HtmlElement)sender).GetAttribute("src"); + string url = link.GetAttribute("src"); if (!string.IsNullOrEmpty(url)) ShowHelpBrowser.OpenHelpView(url); } } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] public void RemoveAllChildren() { try @@ -560,7 +573,7 @@ namespace HtmlHelp2 this.internalIndex = 0; axWebBrowser.Document.Body.InnerHtml = string.Empty; } - catch (Exception ex) + catch (System.NotSupportedException ex) { LoggingService.Error("Help 2.0: Clean-up Call Exception; " + ex.ToString()); } @@ -568,6 +581,7 @@ namespace HtmlHelp2 #endregion #region DebugInfo + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] public void CreateDebugPre(string debugInformation) { if (!string.IsNullOrEmpty(debugInformation)) diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs index d036e66c6c..18dbb1d9b3 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs @@ -9,6 +9,7 @@ namespace HtmlHelp2 { using System; using System.Collections; + using System.Globalization; using System.Windows.Forms; using ICSharpCode.Core; using ICSharpCode.SharpDevelop; @@ -118,7 +119,7 @@ namespace HtmlHelp2 string text = StringParser.Parse("${res:AddIns.HtmlHelp2.ResultsOfIndexResults}", new string[,] {{"0", indexTerm}, - {"1", listView.Items.Count.ToString()}, + {"1", listView.Items.Count.ToString(CultureInfo.InvariantCulture)}, {"2", (listView.Items.Count == 1)?"${res:AddIns.HtmlHelp2.SingleTopic}":"${res:AddIns.HtmlHelp2.MultiTopic}"}} ); diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs index 74a4d06a77..1f66480d80 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs @@ -9,6 +9,7 @@ namespace HtmlHelp2 { using System; using System.Collections; + using System.Globalization; using System.Windows.Forms; using ICSharpCode.Core; using ICSharpCode.SharpDevelop; @@ -123,7 +124,7 @@ namespace HtmlHelp2 string text = StringParser.Parse("${res:AddIns.HtmlHelp2.ResultsOfSearchResults}", new string[,] {{"0", indexTerm}, - {"1", listView.Items.Count.ToString()}, + {"1", listView.Items.Count.ToString(CultureInfo.InvariantCulture)}, {"2", (listView.Items.Count == 1)?"${res:AddIns.HtmlHelp2.SingleTopic}":"${res:AddIns.HtmlHelp2.MultiTopic}"}} ); @@ -142,16 +143,19 @@ namespace HtmlHelp2 public int Compare(object x, object y) { + ListViewItem itemA = x as ListViewItem; + ListViewItem itemB = y as ListViewItem; + switch (col) { case 2: - int a = Int32.Parse(((ListViewItem)x).SubItems[col].Text); - int b = Int32.Parse(((ListViewItem)y).SubItems[col].Text); + int a = Int32.Parse(itemA.SubItems[col].Text, CultureInfo.InvariantCulture); + int b = Int32.Parse(itemB.SubItems[col].Text, CultureInfo.InvariantCulture); if(a > b) return 1; else if(a < b) return -1; else return 0; default: - return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); + return string.Compare(itemA.SubItems[col].Text, itemB.SubItems[col].Text); } } } diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/HelpBrowserCommands.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/HelpBrowserCommands.cs index 5c57467c29..9a3543833d 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/HelpBrowserCommands.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/HelpBrowserCommands.cs @@ -7,8 +7,8 @@ using System; using System.Drawing; +using System.Security.Permissions; using System.Windows.Forms; - using ICSharpCode.Core; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; @@ -19,7 +19,7 @@ namespace HtmlHelp2 { public abstract class HelpToolbarCommand : AbstractCommand { - public HtmlHelp2TocPad TocPad + public static HtmlHelp2TocPad TocPad { get { @@ -35,12 +35,14 @@ namespace HtmlHelp2 } } - public void BringTocPadToFront() + public static void BringTocPadToFront() { WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2TocPad)).BringPadToFront(); } } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] + [PermissionSet(SecurityAction.InheritanceDemand, Name="Execution")] public class SyncTocCommand : HelpToolbarCommand { public override void Run() @@ -50,6 +52,8 @@ namespace HtmlHelp2 } } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] + [PermissionSet(SecurityAction.InheritanceDemand, Name="Execution")] public class PreviousTopicCommand : HelpToolbarCommand { public override void Run() @@ -58,7 +62,7 @@ namespace HtmlHelp2 { TocPad.GetPrevFromNode(); } - catch + catch (System.ArgumentException) { TocPad.GetPrevFromUrl(Browser.Url.ToString()); } @@ -66,6 +70,8 @@ namespace HtmlHelp2 } } + [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] + [PermissionSet(SecurityAction.InheritanceDemand, Name="Execution")] public class NextTopicCommand : HelpToolbarCommand { public override void Run() @@ -74,7 +80,7 @@ namespace HtmlHelp2 { TocPad.GetNextFromNode(); } - catch + catch (System.ArgumentException) { TocPad.GetNextFromUrl(Browser.Url.ToString()); } diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs index b23919dda1..da214d239c 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs @@ -38,17 +38,17 @@ namespace HtmlHelp2 OpenHelpView(topic.URL, topic, hiliteMatchingWords); } - public static void OpenHelpView(string topicUrl) + public static void OpenHelpView(string topicLink) { - OpenHelpView(topicUrl, null, false); + OpenHelpView(topicLink, null, false); } - public static void OpenHelpView(string topicUrl, bool hiliteMatchingWords) + public static void OpenHelpView(string topicLink, bool hiliteMatchingWords) { - OpenHelpView(topicUrl, null, hiliteMatchingWords); + OpenHelpView(topicLink, null, hiliteMatchingWords); } - public static void OpenHelpView(string topicUrl, IHxTopic topic, bool hiliteMatchingWords) + public static void OpenHelpView(string topicLink, IHxTopic topic, bool hiliteMatchingWords) { hiliteMatches = hiliteMatchingWords; lastTopic = topic; @@ -56,7 +56,7 @@ namespace HtmlHelp2 if (help2Browser != null) { - help2Browser.Load(topicUrl); + help2Browser.Load(topicLink); help2Browser.WorkbenchWindow.SelectWindow(); } } diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs index 1ed6562e30..e61b7c5dc4 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs @@ -7,6 +7,8 @@ using System; using System.Collections.Generic; +using System.Globalization; +using System.Security.Permissions; using System.Windows.Forms; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Gui; @@ -22,16 +24,29 @@ namespace HtmlHelp2 public override void GoHome(HtmlViewPane pane) { - pane.Navigate(HtmlHelp2Environment.DefaultPage); + if (pane == null) + { + throw new ArgumentNullException("pane"); + } + pane.Navigate(new Uri(HtmlHelp2Environment.DefaultPage)); } public override void GoSearch(HtmlViewPane pane) { - pane.Navigate(HtmlHelp2Environment.SearchPage); + if (pane == null) + { + throw new ArgumentNullException("pane"); + } + pane.Navigate(new Uri(HtmlHelp2Environment.SearchPage)); } +// [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] public override void InterceptNavigate(HtmlViewPane pane, WebBrowserNavigatingEventArgs e) { + if (pane == null) + { + throw new ArgumentNullException("pane"); + } if (scriptObject == null) { scriptObject = new JScriptExternal(); LoadHelpState(); @@ -64,9 +79,14 @@ namespace HtmlHelp2 } PropertyService.Set("HtmlHelpPersistedJScriptGlobals", lines.ToArray()); } - + +// [PermissionSet(SecurityAction.LinkDemand, Name="Execution")] public override void DocumentCompleted(HtmlViewPane pane, WebBrowserDocumentCompletedEventArgs e) { + if (pane == null) + { + throw new ArgumentNullException("pane"); + } ShowHelpBrowser.HighlightDocument(pane); } } diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs index 986e4a7153..43cce5fcc5 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs @@ -13,36 +13,36 @@ namespace HtmlHelp2 using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Dom; - public class MsHelpProvider : HelpProvider + public class MSHelpProvider : HelpProvider { public override bool TryShowHelp(string fullTypeName) { LoggingService.Info("Help 2.0: MsHelpProvider.TryShowHelp"); - try - { +// try +// { PadDescriptor search = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2SearchPad)); return ((HtmlHelp2SearchPad)search.PadContent).PerformF1Fts(fullTypeName, true); - } - catch - { - return false; - } +// } +// catch +// { +// return false; +// } } public override bool TryShowHelpByKeyword(string keyword) { LoggingService.Info("Help 2.0: MsHelpProvider.TryShowHelpByKeyword"); - try - { +// try +// { PadDescriptor search = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2SearchPad)); return ((HtmlHelp2SearchPad)search.PadContent).PerformF1Fts(keyword); - } - catch - { - return false; - } +// } +// catch +// { +// return false; +// } } } } diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs index dfb7e14565..b8ac116d3a 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs @@ -73,48 +73,6 @@ namespace HtmlHelp2.Environment help2Collections.EndUpdate(); } return true; -// if (help2Collections == null) -// { -// return false; -// } -// help2Collections.Items.Clear(); -// help2Collections.BeginUpdate(); -// bool result = true; -// -// try -// { -// string currentDescription = string.Empty; -// HxRegistryWalkerClass registryWalker = new HxRegistryWalkerClass(); -// IHxRegNamespaceList namespaces = registryWalker.get_RegisteredNamespaceList(""); -// -// foreach (IHxRegNamespace currentNamespace in namespaces) -// { -// help2Collections.Items.Add -// ((string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription)); -// -// if (!string.IsNullOrEmpty(selectedHelp2Collection) && -// string.Compare(selectedHelp2Collection, currentNamespace.Name) == 0) -// { -// currentDescription = -// (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription); -// } -// } -// -// if (!string.IsNullOrEmpty(currentDescription)) -// help2Collections.SelectedIndex = help2Collections.Items.IndexOf(currentDescription); -// else -// help2Collections.SelectedIndex = 0; -// } -// catch -// { -// result = false; -// } -// finally -// { -// help2Collections.EndUpdate(); -// } -// -// return result; } public static string GetNamespaceName(string description) @@ -192,9 +150,7 @@ namespace HtmlHelp2.Environment registryWalker = null; } - if (registryWalker == null || - help2Namespaces == null || help2Namespaces.Count == 0 || - string.IsNullOrEmpty(matchingName)) + if (registryWalker == null || help2Namespaces == null || help2Namespaces.Count == 0 || string.IsNullOrEmpty(matchingName)) { return string.Empty; } @@ -205,7 +161,7 @@ namespace HtmlHelp2.Environment return currentNamespace.Name; } } - return string.Empty; + return help2Namespaces.ItemAt(1).Name; } } diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs index 53cec124de..e741ed9e4e 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs +++ b/src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs @@ -8,6 +8,7 @@ namespace HtmlHelp2.Environment { using System; + using System.Globalization; using System.IO; using System.Windows.Forms; using System.Xml; @@ -24,15 +25,13 @@ namespace HtmlHelp2.Environment static IHxRegFilterList namespaceFilters; static IHxQuery fulltextSearch; static IHxIndex dynamicHelp; - static string defaultNamespaceName = - Help2RegistryWalker.GetFirstMatchingNamespaceName("MS.NETFramework.v20*"); - static string currentSelectedFilterQuery = ""; - static string currentSelectedFilterName = ""; + static string defaultNamespaceName; + static string currentSelectedFilterQuery; + static string currentSelectedFilterName; static string defaultPage = "about:blank"; static string searchPage = "http://msdn.microsoft.com"; static bool dynamicHelpIsBusy; static HtmlHelp2Options config = new HtmlHelp2Options(); - HtmlHelp2Environment() { @@ -40,8 +39,7 @@ namespace HtmlHelp2.Environment static HtmlHelp2Environment() { - LoadHelp2Config(); - InitializeNamespace(defaultNamespaceName); + InitializeNamespace(); } #region Properties @@ -94,24 +92,36 @@ namespace HtmlHelp2.Environment #region Namespace Functions private static void LoadHelp2Config() { + if (string.IsNullOrEmpty(defaultNamespaceName)) + { + defaultNamespaceName = + Help2RegistryWalker.GetFirstMatchingNamespaceName("MS.NETFramework.v20*"); + } + else + { + defaultNamespaceName = Help2RegistryWalker.GetFirstNamespace(defaultNamespaceName); + } + LoadConfiguration(); + if (!string.IsNullOrEmpty(config.SelectedCollection)) { - defaultNamespaceName = config.SelectedCollection; + defaultNamespaceName = + Help2RegistryWalker.GetFirstNamespace(config.SelectedCollection); } } public static void ReloadNamespace() { - LoadHelp2Config(); - defaultNamespaceName = Help2RegistryWalker.GetFirstNamespace(defaultNamespaceName); - InitializeNamespace(defaultNamespaceName); + InitializeNamespace(); OnNamespaceReloaded(EventArgs.Empty); } - private static void InitializeNamespace(string namespaceName) + private static void InitializeNamespace() { - if (string.IsNullOrEmpty(namespaceName)) + LoadHelp2Config(); + + if (string.IsNullOrEmpty(defaultNamespaceName)) { return; } @@ -130,7 +140,7 @@ namespace HtmlHelp2.Environment currentSelectedFilterName = string.Empty; session = new HxSession(); - session.Initialize(String.Format(null, "ms-help://{0}", namespaceName), 0); + session.Initialize(String.Format(CultureInfo.InvariantCulture, "ms-help://{0}", defaultNamespaceName), 0); namespaceFilters = session.GetFilterList(); ReloadDefaultPages();