2011-02-05 58 views
0

我试图获得对IPart接口的参考以控制Windows音频音量级别,例如,我正在使用IDeviceTopology::GetPartById函数来获取它。无法获得对IPart的参考

该函数需要一个UINT。我尝试了0并没有得到任何东西,然后放弃了,只是尝试增加一个UINT,直到我可以得到一个参考。没有运气那样。

我已经参考了正确的设备拓扑。

我的HRESULT是E_INVALIDARG

在我的设备上没有任何部件可用吗?

MSDN说要得到一个ID传入GetPartById,我应该打电话IAudioInputSelector::GetSelection。但是,要使用IAudioInputSelector,我需要已经有一个IPart对象的引用。

+0

“通过在线学习和使用Google搜索的方法”您永远不会学习。有非常多的错误的C++,单一的C++,以及简单的错误的C++信息,你最终会变成一团糟。你必须得到一个[书](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list),然后另一个,也许另一个和另一个。 – GManNickG 2011-02-05 23:29:34

回答

1

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

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