私は実際にはWindows APIの知識がないので、私の答えはおそらく最善ではなく、もっと良い方法があるかもしれません.
HRESULT hr = CoInitialize(NULL);
IMMDeviceEnumerator *pEnum = NULL;
hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&pEnum);
if(SUCCEEDED(hr))
{
IMMDeviceCollection *pDevices;
// Enumerate the output devices.
hr = pEnum->EnumAudioEndpoints(eAll, DEVICE_STATE_ACTIVE, &pDevices);
// You can choose between eAll, eCapture or eRender
}
これにより、入力 (キャプチャ) と出力 (レンダリング) を区別することができます。(それはあなたが望んでいたものですよね?)
コードはこの記事から引用しています。正しい API 呼び出しとライブラリを調べることができます。さらに詳しい情報が得られる場合もあります。
お役に立てば幸いです。