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 系统声音