Mit der DirectX SDK können Sie DirectSoundCaptureEnumerate aufrufen, die Ihre DSEnumCallback-Funktion für jedes DirectSoundCapture-Gerät auf dem System aufrufen wird. Der erste Parameter, der an Ihren DSEnumCallback übergeben wird, ist eine LPGUID, die "Adresse der GUID, die das Gerät angibt, das aufzulisten ist, oder NULL für das primäre Gerät".
Wenn alles, was Sie tun müssen, ist herauszufinden, ob ein Aufzeichnungsgerät vorhanden ist (ich glaube nicht, das gut genug ist, wenn Sie wirklich das Standardgerät müssen wissen), können Sie waveInGetNumDevs verwenden:
#include <tchar.h>
#include <windows.h>
#include "mmsystem.h"
int _tmain(int argc, wchar_t *argv[])
{
UINT deviceCount = waveInGetNumDevs();
if (deviceCount > 0)
{
for (int i = 0; i < deviceCount; i++)
{
WAVEINCAPSW waveInCaps;
waveInGetDevCapsW(i, &waveInCaps, sizeof(WAVEINCAPS));
// do some stuff with waveInCaps...
}
}
return 0;
}