DRVM_MAPPER_PREFERRED_GET 函数

DRVM_MAPPER_PREFERRED_GET 消息会检索首选音频设备的设备 ID。

语法

DWORD  xxxMessage(
   UINT      uDeviceID,
   UINT      uMsg,
   DWORD_PTR dwParam1,
   DWORD_PTR dwParam2
);

参数

  • uDeviceID
    指定目标设备的 ID。 有关如何强制转换此值以用于相应函数的详细信息,请参阅下面的备注部分。

  • uMsg
    调用方在调用 xxxMessage 以处理此设备消息时,将此参数设置为 DRVM_MAPPER_PREFERRED_GET。

  • dwParam1
    指向设备 ID 的指针。 此参数指向一个 DWORD 变量,该函数会将当前首选设备的设备 ID 写入该变量中。 如果没有任何设备符合首选设备的资格,该函数将写入值 (-1)。

  • dwParam2
    指向状态标志的指针。 此参数指向一个 DWORD 变量,该函数会向此变量中写入设备状态标志。 目前仅定义了一个标志位(仅针对 waveInMessagewaveOutMessage 调用):DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY。 有关更多信息,请参见下面的“备注”部分。

返回值

如果已成功处理消息,则 xxxMessage 函数将返回 MMSYSERR_NOERROR。 否则,将返回相应的错误代码。

注解

此消息仅适用于 waveInMessagewaveOutMessagemidiOutMessage 函数。 当调用方使用 DRVM_MAPPER_PREFERRED_GET 消息调用这些函数时,调用方必须先将设备 ID 指定为 WAVE_MAPPER(对于 waveInMessagewaveOutMessage)或 MIDI_MAPPER(对于 midiOutMessage),然后将此值强制转换为适当的句柄类型。 对于 waveInMessagewaveOutMessagemidiOutMessage 函数,调用方必须将设备 ID 分别转换为句柄类型 HWAVEIN、HWAVEOUT 或 HMIDIOUT。 请注意,如果调用方提供有效的句柄而不是此参数的设备 ID,函数将失败并返回错误代码 MMSYSERR_NOSUPPORT。

系统会截获此消息并返回相应的值,而不将此消息发送到设备驱动程序。 有关系统截获的 xxxMessage 函数的一般信息,请参阅系统截获的设备消息

此消息提供了一种方法,用于确定哪个设备是常规音频函数的首选设备,这与 DRVM_MAPPER_CONSOLEVOICECOM_GET 消息形成对比,后者用于确定哪个设备特定于语音通信的设备。

dwParam2 指向的 DWORD 位置中设置 DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY 标志位时,waveInwaveOut API 仅使用当前的首选设备,如果首选设备不可用,则不会搜索其他可用设备。 请注意,midiOutMessage 函数不会输出此标志--midiOut API 始终仅使用首选设备。 waveInMessagewaveOutMessage 调用输出的标志适用于 waveInwaveOut API 的首选设备,无论该调用是针对 waveInMessage 还是 waveOutMessage

wave xxxMessage 函数接受此值代替有效的设备句柄,以便允许应用程序确定默认设备 ID,而无需首先打开设备。 有关详细信息,请参阅访问首选设备 ID

要求

目标平台

桌面

版本

在 Microsoft Windows Me 和 Windows 2000 及更高版本的操作系统中受支持。

标头

Mmddk.h(包括 Mmddk.h)

另请参阅

访问首选的设备 ID

DRVM_MAPPER_CONSOLEVOICECOM_GET

midiInMessage

midiOutMessage

mixerMessage

首选的语音通信设备 ID

系统截获的设备消息

waveInMessage

waveOutMessage