Windows 7 CoreAudio Media Foundation - IID_IAudioStreamVolume 的 uuidof

Posted

技术标签:

【中文标题】Windows 7 CoreAudio Media Foundation - IID_IAudioStreamVolume 的 uuidof【英文标题】:Windows 7 CoreAudio Media Foundation- uuidof of IID_IAudioStreamVolume 【发布时间】:2012-11-17 21:52:42 【问题描述】:

我收到以下代码的链接错误:

hr = pPlaybackClient->GetService(IID_IAudiostreamVolume, (void **)&pStreamVolume);

链接错误是“未解析的外部符号_IID_IAudioStreamVolume”

IID_IAudioStreamVolume 是在 Audioclient.h 中定义的,我正在 #include 那个文件。如果我声明:

const IID IID_IAudioStreamVolume = __uuidof(IID_IAudioStreamVolume);

我收到“错误:__uuidof 的操作数必须具有已指定 __declspec(uuid('...')) 的类或枚举类型。

我确定这是一个小问题,但我没有看到答案——我们将不胜感激。

【问题讨论】:

【参考方案1】:

找到了。使用 __uuidof(IAudioStreamVolume) 而不是 IID_IAudioStreamVolume 可以正确编译和链接。如果有人知道我在哪里可以找到有关 MS 在这里所做的一些文档,我将不胜感激。

【讨论】:

IID_IAudioStreamVolume 不在 SDK 中。是的,您可以使用 __uuidof 轻松解决它,正如您已经找到的那样。我想文档写道假设 IID_ 变量也将另外可用(就像其他人一样)。 这是否记录在某处? __uuidof 肯定有记录。此外,Windows SDK 中的所有接口都附加了 IID,您可以应用 __uuidof... 除了您明确使用 IID_ 前缀的最旧接口。

以上是关于Windows 7 CoreAudio Media Foundation - IID_IAudioStreamVolume 的 uuidof的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 10 上为 Qt 构建 WMF(Windows Media Foundation)媒体驱动程序插件

Borland Builder C++ 6 中的 CoreAudio API

Windows XP Media Center Edition

使用 System.Media.SoundPlayer 播放 Windows 系统声音

找不到 System.Windows.Media 命名空间?

怎么用windows media player