IMMDeviceEnumerator::RegisterEndpointNotificationCallback 方法 (mmdeviceapi.h)

RegisterEndpointNotificationCallback 方法注册客户端的通知回调接口。

语法

HRESULT RegisterEndpointNotificationCallback(
  [in] IMMNotificationClient *pClient
);

参数

[in] pClient

指向客户端正在注册通知回调的 IMMNotificationClient 接口的指针。

返回值

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

返回代码 说明
E_POINTER
参数 pNotifyNULL
E_OUTOFMEMORY
内存不足。

注解

此方法注册一个 IMMNotificationClient 接口,当终结点设备的角色、状态、存在或属性发生更改时,系统将调用该接口。 调用方实现 IMMNotificationClient 接口。

当不再需要通知时,客户端可以调用 IMMDeviceEnumerator::UnregisterEndpointNotificationCallback 方法来终止通知。

客户端必须确保在 RegisterEndpointNotificationCallback 调用后和调用 UnregisterEndpointNotificationCallback 之前不会释放 IMMNotificationClient 对象。 这些方法不调用客户端的 IMMNotificationClient::AddRefIMMNotificationClient::Release 实现。 客户端负责维护 IMMNotificationClient 对象的引用计数。 如果 RegisterEndpointNotificationCallback 调用成功,客户端必须递增计数,并且仅在调用 UnregisterEndpointNotificationCallback 或实现一些其他机制后释放最终引用,以确保在调用 UnregisterEndpointNotificationCallback 之前不会删除对象。 否则,应用程序会泄漏 IMMNotificationClient 以及同一容器中实现的任何其他对象所持有的资源。

有关 AddRefRelease 方法的详细信息,请参阅 Windows SDK 文档中关于 IUnknown 接口的讨论。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 mmdeviceapi.h

另请参阅

IMMDeviceEnumerator 接口

IMMDeviceEnumerator::UnregisterEndpointNotificationCallback

IMMNotificationClient 接口