public static extern int mixerGetDevCaps(IntPtr uMxId, ref MIXERCAPS pmxcaps, int cbmxcaps);
public static MIXERCAPS[] GetAllMixerCapabilities() { IntPtr mixerID = new IntPtr(); int numMixers = GetNumberOfMixers(); if (numMixers < 1) return null; MIXERCAPS[] allCaps = new MIXERCAPS[numMixers]; for (int i = 0; i < numMixers; i++) { mixerID = new IntPtr(i); MIXERCAPS caps = new MIXERCAPS(); winmm.mixerGetDevCaps(mixerID, ref caps, Marshal.SizeOf(typeof(MIXERCAPS))); allCaps[i] = caps; } return allCaps; }