次の方法で共有


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::AddRef および IMMNotificationClient::Release 実装を呼び出しません。 クライアントは、 IMMNotificationClient オブジェクトの参照カウントを維持する必要があります。 RegisterEndpointNotificationCallback 呼び出しが成功し、UnregisterEndpointNotificationCallback を呼び出した後にのみ最後の参照を解放する場合、または UnregisterEndpointNotificationCallback が呼び出される前にオブジェクトが削除されないようにするための他のメカニズムを実装した場合、クライアントはカウントをインクリメントする必要があります。 それ以外の場合、アプリケーションは IMMNotificationClient と、同じコンテナーに実装されている他のオブジェクトによって保持されているリソースをリークします。

AddRef メソッドと Release メソッドの詳細については、Windows SDKドキュメントの IUnknown インターフェイスの説明を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mmdeviceapi.h

こちらもご覧ください

IMMDeviceEnumerator インターフェイス

IMMDeviceEnumerator::RegisterEndpointNotificationCallback

IMMNotificationClient インターフェイス