2011-02-05 63 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(),它將返回連接器另一側的部件。繼續,您將能夠遍歷整個拓撲圖並識別所有部分。