IMMDeviceEnumerator::RegisterEndpointNotificationCallback メソッド (mmdeviceapi.h)
RegisterEndpointNotificationCallback メソッドは、クライアントの通知コールバック インターフェイスを登録します。
構文
HRESULT RegisterEndpointNotificationCallback(
[in] IMMNotificationClient *pClient
);
パラメーター
[in] pClient
クライアントが通知コールバックに登録している IMMNotificationClient インターフェイスへのポインター。
戻り値
メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
パラメーター pNotify は NULL です。 |
|
メモリが不足しています。 |
注釈
このメソッドは、エンドポイント デバイスのロール、状態、存在、またはプロパティが変更されたときにシステムによって呼び出される IMMNotificationClient インターフェイスを登録します。 呼び出し元は IMMNotificationClient インターフェイスを実装します。
通知が不要になった場合、クライアントは IMMDeviceEnumerator::UnregisterEndpointNotificationCallback メソッドを呼び出して通知を終了できます。
クライアントは、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 |