使用位图或图标打造控件面板的品牌

在 Windows XP 和更高版本的 Windows 中,控制面板中的声音应用程序支持音频设备控件的第三方品牌。 独立硬件供应商 (IHV) 可以在其音频设备的控件旁边显示以下项:

  • 公司徽标

  • 专有设备名称

安装设备驱动程序的 INF 文件还会将控制面板自定义数据加载到注册表中。 公司徽标的位图化图像包含在已安装驱动程序文件中。

在 Windows XP 中,用户可以在以下程序位置看到品牌信息:

  • 控制面板 (Mmsys.cpl) 中“声音和音频设备”应用程序的“音量”页

  • SndVol32 程序 (Sndvol32.exe)

在 Windows Vista 中,用户可以在控制面板 (Mmsys.cpl) 中“声音”应用程序的“播放”和“录制”页看到品牌信息。

品牌信息存储在注册表中 Branding 子项内的音频设备根项下,该项位于 media-class 项下。 Branding 子项可以包含下表中显示的一个或多个 REG_SZ 值。

值名称 含义

图标

包含 SndVol32 控件菜单所用图标的文件的名称。

位图

包含 32 x 32 位图(显示在控制面板中“声音和音频设备”应用程序的“音量”页中)的文件的名称。

这些值通过安装设备驱动程序的 INF 文件的 add-registry-section(请参阅 INF AddReg 指令)中的指令添加到注册表。 控制面板对 Branding 子项中缺少的所有值使用默认值。

“位图”徽标显示在“音量”页面顶部专有设备名称的左侧。 “图标”徽标显示在 SndVol32 控件菜单的左上角。

前面提及页中显示的专有设备名称是设备的友好名称。 此友好名称由安装设备的 INF 文件的 add-registry-section 中的指令指定。 此指令包含关键字“FriendlyName”,如 INF AddReg 指令中的示例所示。 在 Windows XP 中,“音量”页和 SndVol32 仅显示名称字符串的前 31 个字符。 超过最大长度的字符串会被截断。 在 Windows Vista 和更高版本的 Windows 中,当设备名称显示在控制面板中时,将撤消此 31 个字符的限制。 使用早于 Windows Vista 的 Windows 版本中支持的 API(例如 MCI_GetDevCaps)时,31 个字符的限制仍适用于你提供给 API 的设备名称。

重要说明:在 Windows Vista 和更高版本的 Windows 中,不再支持对第三方品牌使用位图图像。 想要为其音频设备控件打造品牌的第三方音频驱动程序开发人员必须使用图标。 这些图标支持的像素尺寸为 32x32 或 48x48。

示例 1

以下示例演示了供应商 INF 文件的 add-registry-section 中的几个指令:

  [XYZ-Audio-Device.AddReg]
  HKR,Branding,icon,,"foo.sys,102"
  HKR,Branding,bitmap,,"c:\mydir\myimage.bmp"

这些指令将控制面板品牌信息添加到注册表。 HKR 表示注册表中的音频设备根项;Branding 子项相对于根项的路径名称指定。 可以采用以下两种格式之一指定 iconbitmap 项的字符串值:“file,resourceid”或“imagefile”。 前面的示例中的第一个指令使用“file,resourceid”格式。 该指令会分配给 icon 项,这是包含文件名、foo.sys 和资源 ID 102 的字符串值。 文件名和资源 ID 用逗号分隔(无空格)。 文件 foo.sys 包含图标资源。 上例中的第二个指令将“imagefile”格式的字符串分配给 bitmap 项;该字符串包含含有位图的 .bmp 文件的完整路径名称。

icon 值的示例指令可以更改为使用“imagefile”格式,但在这种情况下,字符串值应包含文件扩展名为 .ico 的文件的路径名称。

对于“file,resourceid”格式,控制面板软件将搜索与 LoadLibrary 函数相同的搜索路径列表(如 Microsoft Windows SDK 文档中所述)。 如果此路径列表不包含该文件,软件还会搜索驱动程序目录(请参阅 INF DestinationDirs 部分)。 此格式允许将图像轻松存储在驱动程序文件中,而无需在 INF 文件中指定绝对路径名称。

示例 2

以下示例适用于 Windows Vista 和更高版本的 Windows。 此示例演示了供应商 INF 文件的 add-registry-section 中的指令。 此示例使用“imagefile”格式:

[ABC-Audio-Device.AddReg]
  HKR,Branding,icon,,"c:\mydir\myicon.ico"