推奨されるデバイス ID へのアクセス
Windows マルチメディア関数の waveInMessage、waveOutMessage、および midiOutMessage は、優先デバイスのデバイス ID を取得することができます。 これら 3 つの関数は、それぞれ、ウェーブ入力、ウェーブ出力、MIDI 出力の優先デバイス ID を取得します。 この情報は、たとえば、ユーザーが 2 つ以上のデバイスの一覧から開くデバイスを選択できるようにするアプリケーション プログラムに役立ちます。 このようなアプリケーションでは通常、リスト内のどのデバイスが優先デバイスであるかを示す必要があります。
優先デバイスは、ユーザーがマルチメディア コントロール パネルの mmsys.cpl を通して選択したデバイスです。 Windows マルチメディアまたは DirectSound アプリケーションでデバイスが明示的に指定されていない場合は、既定で優先デバイスが選択されます。
現在の優先オーディオ デバイスのデバイス ID を取得するには、アプリケーションはメッセージ パラメーターに xxxMessage 関数を呼び出し、定数 DRVM_MAPPER_PREFERRED_GET を設定します。
DRVM_MAPPER_PREFERRED_GET メッセージで waveInMessage 関数、waveOutMessage 関数、または midiOutMessage 関数を呼び出す場合、デバイス ハンドルの値を WAVE_MAPPER (waveInMessage または waveOutMessage の場合) または MIDI_MAPPER (midiOutMessage の場合) に指定し、この値を適切なハンドル タイプ (HWAVEIN、HWAVEOUT、または HMIDIOUT) にキャストします。 xxxMessage 関数は、有効なデバイス ハンドルの代わりにこの値を受け入れるため、アプリケーションは最初にデバイスを開かなくても既定のデバイス ID に対してクエリを実行できます。 xxxMessage 関数の詳細については、「システムインターセプトされたデバイス メッセージ」を参照してください。
DRVM_MAPPER_PREFERRED_GET メッセージは、ターゲット デバイス (waveIn、waveOut、または midiOut) のマッパーによってインターセプトされます。 ウェーブ デバイスと MIDI デバイスのマッパーの詳細については、Microsoft Windows SDK のドキュメントを参照してください。