c++ - 无法获得对 IPart 的引用

标签 c++ windows-7 audio windows-vista

例如,我正在尝试获取对 IPart 接口(interface)的引用以控制 Windows 音频音量级别,并且我正在使用 IDeviceTopology::GetPartById 函数来获取它。

这个函数接受一个 UINT。我尝试了 0 但一无所获,然后放弃并尝试递增 UINT 直到我可以获得引用。运气不好。

我得到了正确设备拓扑的引用。

我的 HRESULT 是 E_INVALIDARG

是否只是我的设备上没有可用的部件?

MSDN说要获取要传递到 GetPartById 的 ID,我应该调用 IAudioInputSelector::GetSelection。不过,要使用 IAudioInputSelector,我需要已经有一个 IPart 对象的引用。

最佳答案

最简单的方法是枚举主机引脚并从所需的输入调用 GetSignalPath 到所需的输出,这将返回一个零件集合。

或者,如果您有一个拓扑对象,您可以调用 GetSubunit 或 GetConnector 来检索子单元或连接器(它们也是零件)。从每个连接器,您可以调用 GetConnectedTo(),这将返回连接器另一侧的部件。继续,您将能够遍历整个拓扑图并识别所有部分。

关于c++ - 无法获得对 IPart 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910324/

相关文章:

c++ - "Pinnacle"of Encapsulation - 关于Effective C++ Advice的问题

c++ - MoltenVK(用于 Vulkan)在 OS X v. 10.13.3 (17D102) 上构建失败 | Xcode 版本 9.2 (9C40b)

c++ - SHBrowseForFolder 返回时如何重新获得焦点

C++指针分配char数组的地址

windows-7 - 在 Windows 7 上杀死进程

c# - 在 Windows 7 下创建新文件和目录时,我的代码会导致崩溃吗?

c - Eclipse CDT 在底层对 'make' 做了什么

android - 我可以使用变量而不是 mp3 资源 ID 在 android 中播放声音吗

python - pygame中的音乐类型未实现位置

java - 音频分析 : frequency vs pitch