public static WAVEOUTCAPS[] GetWaveOutCapabilities()
{
int numDevices = GetNumberOfWaveOutDevices();
WAVEOUTCAPS[] caps = new WAVEOUTCAPS[numDevices];
for (int i = 0; i < numDevices; i++)
{
WAVEOUTCAPS newCaps = new WAVEOUTCAPS();
IntPtr devID = new IntPtr(i);
winmm.waveOutGetDevCaps(devID, ref newCaps, Marshal.SizeOf(newCaps));
caps[i] = newCaps;
}
return caps;
}
#endregion