IAudioSessionControl::SetDisplayName 方法 (audiopolicy.h)
SetDisplayName 方法将显示名称分配给当前会话。
语法
HRESULT SetDisplayName(
[in] LPCWSTR Value,
[in] LPCGUID EventContext
);
参数
[in] Value
指向以 null 结尾的宽字符字符串的指针,该字符串包含会话的显示名称。
[in] EventContext
指向事件上下文 GUID 的指针。 如果对此方法的调用生成名称更改事件,会话管理器会将通知发送到已注册与会话管理器的 IAudioSessionEvents 接口的所有客户端。 会话管理器包含每个通知的 EventContext 指针值。 收到通知后,客户端可以通过检查 EventContext 值来确定它还是另一个客户端是事件的源。 此方案取决于客户端为此参数选择的值,该值在会话中的所有客户端中都是唯一的。 如果调用方为此参数提供 NULL 指针,则客户端的通知方法将收到 NULL 上下文指针。
返回值
如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。
返回代码 | 说明 |
---|---|
|
参数 值为NULL。 |
|
音频终结点设备已拔出,或者音频硬件或关联的硬件资源已重新配置、禁用、删除或以其他方式不可用。 |
|
Windows 音频服务未运行。 |
注解
在 Windows Vista 中,系统提供的程序(Sndvol.exe)使用显示名称来标记会话的音量控件。 如果客户端不调用 SetDisplayName 来为会话分配显示名称,则 Sndvol 程序使用默认自动生成的名称来标记会话。 默认名称包含诸如音频应用程序的窗口标题或版本资源等信息。
如果客户端有多个活动会话,则客户端指定的显示名称对于区分不同会话的音量控件特别有用。
对于跨进程会话,会话没有标识信息,例如应用程序名称或进程 ID,用于生成默认显示名称。 因此,客户端必须调用 SetDisplayName 以避免显示无意义的默认显示名称。
显示名称不会在 IAudioSessionControl 对象的生存期之后保留。 因此,在释放对 对象的所有引用后, (同一应用程序、相同会话 GUID 和相同终结点设备) 的对象版本将再次具有默认的自动生成的显示名称,直到客户端调用 SetDisplayName。
客户端可以通过调用 IAudioSessionControl::GetDisplayName 方法检索会话的显示名称。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | audiopolicy.h |