IAudioSessionControl::SetIconPath 方法 (audiopolicy.h)

SetIconPath 方法将显示图标分配给当前会话。

语法

HRESULT SetIconPath(
  [in] LPCWSTR Value,
  [in] LPCGUID EventContext
);

参数

[in] Value

指向以 null 结尾的宽字符字符串的指针,该字符串指定包含图标的 .ico、.dll 或 .exe 文件的路径和文件名。 有关图标路径的信息,请参阅 Windows SDK 文档。

[in] EventContext

指向事件上下文 GUID 的指针。 如果对此方法的调用生成图标更改事件,则会话管理器将向已注册 IAudioSessionEvents 接口的所有客户端发送通知。会话管理器。 会话管理器包含每个通知的 EventContext 指针值。 收到通知后,客户端可以通过检查 EventContext 值来确定它还是另一个客户端是事件的源。 此方案取决于客户端为此参数选择一个在会话中的所有客户端中唯一的值。 如果调用方为此参数提供 NULL 指针,则客户端的通知方法将收到 NULL 上下文指针。

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
E_POINTER
参数 值为NULL
AUDCLNT_E_DEVICE_INVALIDATED
音频终结点设备已拔出,或者音频硬件或关联的硬件资源已重新配置、禁用、删除或以其他方式不可用。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 音频服务未运行。

注解

在 Windows Vista 中,系统提供的程序 Sndvol.exe 使用显示图标 (以及显示名称) 来标记会话的音量控件。 如果客户端不调用 SetIconPath 来为会话分配图标,则 Sndvol 程序将使用应用程序窗口中的图标作为会话的默认图标。

对于跨进程会话,该会话不与单个应用程序进程关联。 因此,默认情况下,Sndvol 没有特定于应用程序的图标,客户端必须调用 SetIconPath 以避免显示无意义的图标。

显示图标不会在 IAudioSessionControl 对象的生存期内保留。 因此,在释放对 对象的所有引用后,在客户端调用 SetIconPath 之前,使用同一应用程序、相同的会话 GUID 和相同的终结点设备) (随后创建的对象版本将再次具有默认图标。

客户端可以通过调用 IAudioSessionControl::GetIconPath 方法检索会话的显示图标。

要求

   
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 audiopolicy.h

另请参阅

IAudioSessionControl 接口

IAudioSessionControl::GetIconPath