IMMDeviceEnumerator::GetDevice メソッド (mmdeviceapi.h)
GetDevice メソッドは、エンドポイント ID 文字列で識別されるオーディオ エンドポイント デバイスを取得します。
構文
HRESULT GetDevice(
[in] LPCWSTR pwstrId,
[out] IMMDevice **ppDevice
);
パラメーター
[in] pwstrId
エンドポイント ID を含む文字列へのポインター。 呼び出し元は通常、 IMMDevice::GetId メソッドまたは IMMNotificationClient インターフェイスのいずれかのメソッドからこの文字列を取得します。
[out] ppDevice
メソッドが指定したデバイスの IMMDevice インターフェイスのアドレスを書き込むポインター変数へのポインター。 このメソッドを使用して、呼び出し元はインターフェイスへのカウントされた参照を取得します。 呼び出し元は、インターフェイスの Release メソッドを呼び出すことによって、不要になったインターフェイスを解放する必要があります。 GetDevice 呼び出しが失敗した場合、*ppDevice は NULL です。
戻り値
メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
パラメーター pwstrId または ppDevice が NULL です。 |
|
デバイス ID は、このシステム内にあるオーディオ デバイスを識別しません。 |
|
メモリが不足しています。 |
注釈
2 つのプログラムが 2 つの異なるプロセスで実行されていて、両方が同じオーディオ エンドポイント デバイスにアクセスする必要がある場合、1 つのプログラムでデバイスの IMMDevice インターフェイスを他のプログラムに渡すことはできません。 ただし、プログラムは、次の手順に従って同じデバイスにアクセスできます。
- 最初のプログラムは、最初のプロセスで IMMDevice::GetId メソッドを呼び出して、デバイスを識別するエンドポイント ID 文字列を取得します。
- 最初のプログラムは、プロセス境界を越えてエンドポイント ID 文字列を 2 番目のプログラムに渡します。
- 2 番目のプロセスでデバイスの IMMDevice インターフェイスへの参照を取得するために、2 番目のプログラムはエンドポイント ID 文字列を使用して GetDevice を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mmdeviceapi.h |