IMMDeviceEnumerator::UnregisterEndpointNotificationCallback 方法 (mmdeviceapi.h)

UnregisterEndpointNotificationCallback 方法删除客户端在对 IMMDeviceEnumerator::RegisterEndpointNotificationCallback 方法的调用中注册的通知接口的注册。

语法

HRESULT UnregisterEndpointNotificationCallback(
  [in] IMMNotificationClient *pClient
);

参数

[in] pClient

指向客户端的 IMMNotificationClient 接口的指针。 在上一次调用 IMMDeviceEnumerator::RegisterEndpointNotificationCallback 方法时,客户端将此相同的接口指针传递给设备枚举器。 有关详细信息,请参阅“备注”。

返回值

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

返回代码 说明
E_POINTER
参数 pNotifyNULL
E_NOTFOUND
找不到指定的通知接口。

注解

客户端必须确保在 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::RegisterEndpointNotificationCallback

IMMNotificationClient 接口