访问首选的设备 ID

Windows 多媒体函数 waveInMessagewaveOutMessagemidiOutMessage 可以检索首选设备的设备 ID。 这三个函数分别获取波次输入、波次输出和 MIDI 输出的首选设备 ID。 此信息对应用程序程序非常有用,例如,允许用户从含两个或更多设备的列表中选择要打开的设备。 此类应用程序通常需要指示列表中的哪些设备是首选设备。

首选设备是指用户通过多媒体控制面板 mmsys.cpl 选择的设备。 如果 Windows 多媒体或 DirectSound 应用程序未显式指定设备,则默认情况下选择首选设备。

若要检索当前首选音频设备的设备 ID,应用程序应调用 xxxMessage 函数,并将消息参数设置为常量 DRVM_MAPPER_PREFERRED_GET

使用 DRVM_MAPPER_PREFERRED_GET 消息调用 waveInMessagewaveOutMessagemidiOutMessage 函数时,请将设备句柄的值指定为 WAVE_MAPPER(对于 waveInMessagewaveOutMessage)或 MIDI_MAPPER(对于 midiOutMessage),并将此值强制转换为相应的句柄类型:HWAVEIN、HWAVEOUT 或 HMIDIOUT。 xxxMessage 函数会接受此值来代替有效的设备句柄,以便应用程序可以查询默认设备 ID,而无需先打开设备。 有关 xxxMessage 函数的详细信息,请参阅系统拦截的设备消息

目标设备的映射器(waveIn、waveOut 或 midiOut)会拦截 DRVM_MAPPER_PREFERRED_GET 消息。 有关波次和 MIDI 设备的映射器的信息,请参阅 Microsoft Windows SDK 文档。