Метод IAudioEndpointVolume::UnregisterControlChangeNotify (endpointvolume.h)
Метод UnregisterControlChangeNotify удаляет регистрацию интерфейса обратного вызова уведомления клиента, зарегистрированного клиентом в предыдущем вызове метода IAudioEndpointVolume::RegisterControlChangeNotify .
Синтаксис
HRESULT UnregisterControlChangeNotify(
[in] IAudioEndpointVolumeCallback *pNotify
);
Параметры
[in] pNotify
Указатель на интерфейс IAudioEndpointVolumeCallback клиента. Клиент передал этот же указатель интерфейса объекту тома конечной точки в предыдущем вызове метода IAudioEndpointVolume::RegisterControlChangeNotify . Если метод UnregisterControlChangeNotify завершается успешно, он вызывает метод Release в интерфейсе IAudioEndpointVolumeCallback клиента.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.
Код возврата | Описание |
---|---|
|
Параметр pNotify имеет значение NULL. |
Комментарии
Прежде чем клиент выпускает окончательную ссылку на интерфейс IAudioEndpointVolumeCallback , он должен вызвать UnregisterControlChangeNotify , чтобы отменить регистрацию интерфейса. В противном случае приложение будет утекать ресурсы, хранящиеся в объектах IAudioEndpointVolumeCallback и IAudioEndpointVolume . Обратите внимание, что метод IAudioEndpointVolume::RegisterControlChangeNotify вызывает метод IAudioEndpointVolumeCallback::AddRef клиента, а UnregisterControlChangeNotify вызывает метод IAudioEndpointVolumeCallback::Release . Если клиент вызывает ошибку, освобождая ссылку на интерфейс IAudioEndpointVolumeCallback перед вызовом UnregisterControlChangeNotify, объект IAudioEndpointVolume никогда не освобождает ссылку на интерфейс IAudioEndpointVolumeCallback . Например, плохо спроектированная реализация IAudioEndpointVolumeCallback может вызвать UnregisterControlChangeNotify из деструктора для объекта IAudioEndpointVolumeCallback . В этом случае клиент не будет вызывать UnregisterControlChangeNotify , пока объект IAudioEndpointVolume не освободит свою ссылку на интерфейс IAudioEndpointVolumeCallback , а объект IAudioEndpointVolume не будет выпускать ссылку на интерфейс IAudioEndpointVolumeCallback , пока клиент не вызовет UnregisterControlChangeNotify. Дополнительные сведения о методах AddRef и Release см. в обсуждении интерфейса IUnknown в документации по Windows SDK.
Пример кода, который вызывает UnregisterControlChangeNotify, см. в разделе Элементы управления объемом конечной точки.
Требования
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | endpointvolume.h |
См. также раздел
Интерфейс IAudioEndpointVolume