是否可以在不同的API中关联相同的音频设备?

我正在使用winmm api来处理音频。 我正在使用waveInGetDeviceCapswaveInMessage来唯一地标识“音频线”。 一切正常,但在Vista中,设备的名称由WaveInCaps结构WaveInCaps在32个字符中。

为了解决这个问题,我想要在操作系统版本> = Vista时使用核心API。 我正在使用IMMDeviceEnumerator.GetDeviceIMMDeviceEnumerator.EnumAudioEndpoints来收集音频线路信息,但我不知道如何判断核心api下的一个设备与waveXx api下的一个条目有关。

我想我可以比较两者的设备路径,但这将违背MS建议将设备路径字符串视为“不透明”。

你打算说什么?

此方案在http://msdn.microsoft.com/en-us/library/dd370819(VS.85).aspx中描述。