IAudioEndpointVolume::UnregisterControlChangeNotify 方法 (endpointvolume.h)

UnregisterControlChangeNotify 方法删除客户端在上一次调用 IAudioEndpointVolume::RegisterControlChangeNotify 方法中注册的客户端通知回调接口的注册。

语法

HRESULT UnregisterControlChangeNotify(
  [in] IAudioEndpointVolumeCallback *pNotify
);

参数

[in] pNotify

指向客户端的 IAudioEndpointVolumeCallback 接口的指针。 在上一次调用 IAudioEndpointVolume::RegisterControlChangeNotify 方法时,客户端将此相同的接口指针传递给终结点卷对象。 如果 UnregisterControlChangeNotify 方法成功,它将在客户端的 IAudioEndpointVolumeCallback 接口上调用 Release 方法。

返回值

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

返回代码 说明
E_POINTER
参数 pNotifyNULL

备注

在客户端释放对 IAudioEndpointVolumeCallback 接口的最终引用之前,它应调用 UnregisterControlChangeNotify 以取消注册接口。 否则,应用程序会泄漏 IAudioEndpointVolumeCallbackIAudioEndpointVolume 对象持有的资源。 请注意, IAudioEndpointVolume::RegisterControlChangeNotify 方法调用客户端的 IAudioEndpointVolumeCallback::AddRef 方法, UnregisterControlChangeNotify 调用 IAudioEndpointVolumeCallback::Release 方法。 如果客户端在调用 UnregisterControlChangeNotify 之前释放对 IAudioEndpointVolumeCallback 接口的引用,则 IAudioEndpointVolume 对象永远不会释放其对 IAudioEndpointVolumeCallback 接口的引用。 例如,设计不佳的 IAudioEndpointVolumeCallback 实现可能会从 IAudioEndpointVolumeCallback 对象的析构函数调用 UnregisterControlChangeNotify 在这种情况下,在 IAudioEndpointVolume 对象释放对 IAudioEndpointVolumeCallback 接口的引用之前,客户端不会调用 UnregisterControlChangeNotify,而 IAudioEndpointVolume 对象在客户端调用 UnregisterControlChangeNotify 之前不会释放其对 IAudioEndpointVolumeCallback 接口的引用。 有关 AddRefRelease 方法的详细信息,请参阅 Windows SDK 文档中有关 IUnknown 接口的讨论。

有关调用 UnregisterControlChangeNotify 的代码示例,请参阅 Endpoint Volume Controls

要求

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

请参阅

IAudioEndpointVolume 接口

IAudioEndpointVolume::RegisterControlChangeNotify

IAudioEndpointVolumeCallback 接口