Поделиться через


Метод IAudioEndpointVolume::UnregisterControlChangeNotify (endpointvolume.h)

Метод UnregisterControlChangeNotify удаляет регистрацию интерфейса обратного вызова уведомления клиента, зарегистрированного клиентом в предыдущем вызове метода IAudioEndpointVolume::RegisterControlChangeNotify .

Синтаксис

HRESULT UnregisterControlChangeNotify(
  [in] IAudioEndpointVolumeCallback *pNotify
);

Параметры

[in] pNotify

Указатель на интерфейс IAudioEndpointVolumeCallback клиента. Клиент передал этот же указатель интерфейса объекту тома конечной точки в предыдущем вызове метода IAudioEndpointVolume::RegisterControlChangeNotify . Если метод UnregisterControlChangeNotify завершается успешно, он вызывает метод Release в интерфейсе IAudioEndpointVolumeCallback клиента.

Возвращаемое значение

Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.

Код возврата Описание
E_POINTER
Параметр 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

IAudioEndpointVolume::RegisterControlChangeNotify

Интерфейс IAudioEndpointVolumeCallback