private List <Color> GetVisualStudioBasicColorList()
        {
            IVsUIShell uiShell = (IVsUIShell)ChangesetViewerPackage.GetGlobalService(typeof(IVsUIShell));

            List <Color> result = new List <Color>();

            foreach (VSSYSCOLOR vsSysColor in Enum.GetValues(typeof(VSSYSCOLOR)))
            {
                uint win32Color;
                uiShell.GetVSSysColor(vsSysColor, out win32Color);
                Color color = ColorTranslator.FromWin32((int)win32Color);
                result.Add(color);
            }

            return(result);
        }
            public override object this[object key] {
                get {
                    if (key is string)
                    {
                        string strKey = (string)key;
                        if (strKey.Equals("HighlightColor"))
                        {
                            if (shellLightColor == SystemColors.Info)
                            {
                                IVsUIShell vsUIShell = (IVsUIShell)owner.GetService(typeof(IVsUIShell));
                                if (vsUIShell != null)
                                {
                                    int vscolor = vsUIShell.GetVSSysColor(__VSSYSCOLOR.VSCOLOR_LIGHT);
                                    shellLightColor = ColorTranslator.FromWin32(vscolor);
                                }
                                else
                                {
                                    shellLightColor = SystemColors.Info;
                                }
                            }
                            return(shellLightColor);
                        }
                        else if (strKey.Equals("DialogFont"))
                        {
                            Font shellFont;
                            // Get the default font from the shell.
                            IUIHostLocale locale = (IUIHostLocale)owner.GetService(typeof(IUIHostLocale));
                            if (locale == null)
                            {
                                shellFont = Control.DefaultFont;
                            }
                            else
                            {
                                shellFont = DesignerPackage.GetFontFromShell(locale);
                            }
                            return(shellFont);
                        }
                    }

                    throw new NotImplementedException("Does not support this key: " + key.ToString());
                }

                set {
                    throw new NotImplementedException("This collection does not support adding values");
                }
            }