public MSDNSearchResult(string displaytext, string url, string description, MSDNSearchProvider provider)
        {
            this.DisplayText = displaytext;  // Stores the text of the link
            // We'll use the description as tooltip - because it's pretty long and all items have it,
            // returning it as part of Description will overload the QL popup with too much information
            this.Tooltip = description;
            // All items use the same icon
            this.Icon = provider.ResultsIcon;

            this.SearchProvider = provider;
            this.Url            = url;
        }
        public MSDNSearchResult(string displaytext, string url, string description, MSDNSearchProvider provider)
        {
            this.DisplayText = displaytext;  // Stores the text of the link
            // We'll use the description as tooltip - because it's pretty long and all items have it, 
            // returning it as part of Description will overload the QL popup with too much information
            this.Tooltip = description;
            // All items use the same icon
            this.Icon = provider.ResultsIcon;

            this.SearchProvider = provider;
            this.Url = url;
        }
        public static MSDNSearchResult FromPersistenceData(string persistenceData, MSDNSearchProvider provider)
        {
            string[] strArr = persistenceData.Split(new string[] { Separator }, StringSplitOptions.None);

            // Let's validate the string, to avoid crashing if someone is messing up with registry values
            if (strArr.Length != 3)
                return null;

            string displayText = UnescapePersistenceString(strArr[0]);
            string url = UnescapePersistenceString(strArr[1]);
            string description = UnescapePersistenceString(strArr[2]);

            if (string.IsNullOrEmpty(displayText) || string.IsNullOrEmpty(url))
                return null;

            return new MSDNSearchResult(displayText, url, description, provider);
        }
        public static MSDNSearchResult FromPersistenceData(string persistenceData, MSDNSearchProvider provider)
        {
            string[] strArr = persistenceData.Split(new string[] { Separator }, StringSplitOptions.None);

            // Let's validate the string, to avoid crashing if someone is messing up with registry values
            if (strArr.Length != 3)
            {
                return(null);
            }

            string displayText = UnescapePersistenceString(strArr[0]);
            string url         = UnescapePersistenceString(strArr[1]);
            string description = UnescapePersistenceString(strArr[2]);

            if (string.IsNullOrEmpty(displayText) || string.IsNullOrEmpty(url))
            {
                return(null);
            }

            return(new MSDNSearchResult(displayText, url, description, provider));
        }
 public MSDNSearchTask(MSDNSearchProvider provider, uint dwCookie, IVsSearchQuery pSearchQuery, IVsSearchProviderCallback pSearchCallback)
     : base(dwCookie, pSearchQuery, pSearchCallback)
 {
     this.provider = provider;
 }
 public MSDNSearchTask(MSDNSearchProvider provider, uint dwCookie, IVsSearchQuery pSearchQuery, IVsSearchProviderCallback pSearchCallback)
     : base(dwCookie, pSearchQuery, pSearchCallback)
 {
     this.provider = provider;            
 }