Метод IMMDeviceEnumerator::RegisterEndpointNotificationCallback (mmdeviceapi.h)

Метод RegisterEndpointNotificationCallback регистрирует интерфейс обратного вызова уведомления клиента.

Синтаксис

HRESULT RegisterEndpointNotificationCallback(
  [in] IMMNotificationClient *pClient
);

Параметры

[in] pClient

Указатель на интерфейс IMMNotificationClient , который клиент регистрирует для обратных вызовов уведомлений.

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

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

Код возврата Описание
E_POINTER
Параметр pNotify имеет значение NULL.
E_OUTOFMEMORY
Недостаточно памяти.

Комментарии

Этот метод регистрирует интерфейс IMMNotificationClient, вызываемый системой при изменении ролей, состояния, существования или свойств устройства конечной точки. Вызывающий объект реализует интерфейс IMMNotificationClient.

Если уведомления больше не нужны, клиент может вызвать метод IMMDeviceEnumerator::UnregisterEndpointNotificationCallback для завершения уведомлений.

Клиент должен убедиться, что объект IMMNotificationClient не был освобожден после вызова RegisterEndpointNotificationCallback и перед вызовом UnregisterEndpointNotificationCallback. Эти методы не вызывают реализации IMMNotificationClient::AddRef и IMMNotificationClient::Release клиента. Клиент отвечает за обслуживание количества ссылок объекта IMMNotificationClient . Клиент должен увеличить число, если вызов RegisterEndpointNotificationCallback выполнен успешно, и освободить окончательную ссылку только после вызова UnregisterEndpointNotificationCallback или реализовать другой механизм, чтобы гарантировать, что объект не был удален до вызова UnregisterEndpointNotificationCallback . В противном случае приложение утечает ресурсы, хранящиеся в IMMNotificationClient , и любой другой объект, реализованный в том же контейнере.

Дополнительные сведения о методах AddRef и Release см. в обсуждении интерфейса IUnknown в документации по Windows SDK.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header mmdeviceapi.h

См. также раздел

Интерфейс IMMDeviceEnumerator

IMMDeviceEnumerator::UnregisterEndpointNotificationCallback

Интерфейс IMMNotificationClient