Visual Studio 集成 (IDE)开发环境存储在注册表中字体的修改后的设置和颜色。 可以使用 IVsFontAndColorStorage 接口来访问这些设置。
启动字体和颜色状态持久性
类别存储字体和颜色信息在下列注册表位置:[HKCU \ \SOFTWARE\Microsoft \Visual StudioVisual Studio version\FontAndColors \CategoryGUID],其中 CategoryGUID 是类别 GUID。
因此,启动持久性, VSPackage 必须:
通过调用 QueryService 获取一 IVsFontAndColorStorage 接口全局服务提供程序。
必须调用使用 SID_SVsFontAndColorStorage 的服务标识符参数和 IID_IVsFontAndColorStorage的接口 ID 参数,QueryService 。
使用 OpenCategory 方法打开保持的类使用类别的 GUID 和模式标志作为参数。
模式,指定由 fFlags 参数,从值构造在 __FCSTORAGEFLAGS 枚举。 此模式的控件:
可以通过 IVsFontAndColorStorage 接口访问的设置。
所有用户修改,并通过 IVsFontAndColorStorage 接口可检索的设置或仅。
传播到用户设置的更改方式。
颜色的值布局。
使用字体和颜色状态持久性
保留字体和颜色包括:
同步 IDE 设置与在注册表中存储的设置。
传播注册表修改信息。
设置和检索在注册表中存储的设置。
同步设置的存储与 IDE 设置主透明。 基础 IDE 编写自动更新了 显示项目 的设置类别注册表项。
如果多个 Vspackage 共享特定类别, VSPackage 应要求事件,便会产生 IVsFontAndColorStorage 接口的方法来修改存储的注册表设置。
默认情况下,事件生成未启用。 使用 FCSF_PROPAGATECHANGES,若要启用事件生成,必须打开类别。 这会使 IDE 调用适当的方法 IVsFontAndColorEvents 该 VSPackage 实现。
备注
修改传递 字体和颜色 属性页生成 IVsFontAndColorStorage的事件无关。可以使用 IVsFontAndColorCacheManager 接口确定缓存的字体和颜色将更新是否在调用 IVsFontAndColorStorage 类的方法之前需要的。
存储和检索信息
若要获取或配置用户可以为一个打开类别的命名显示项修改的信息, Vspackage 调用 GetItem 和 SetItem 方法。
使用 GetFont 和 SetFont 方法,有关字体属性的信息特定类别的获取。
备注
传递给 OpenCategory 方法的 fFlags 参,在打开了该类别定义 GetItem 和 GetFont 方法的行为。默认情况下,这些方法只返回 aboutdisplayitemsthat更改的信息。但是,因此,如果使用 FCSF_LOADDEFAULTS 标志,类别中打开,已更新的和未更改的显示项可以由 GetItem 和 GetFont访问。
默认情况下,只有已更改的 显示项目 信息在注册表中保留。 IVsFontAndColorStorage 接口不能用于检索字体和颜色的所有设置。
使用 T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorDefaults 接口的方法,所有 显示项目 设置在特定 类 的来获取。