Look in MSDN information for:
- IMMDeviceCollection, IMMDevice and IAudioEndpointVolume (only Windows Vista, Windows 7).
- mixerGetNumDevs, mixerGetLineControls,...
This is "common" information. It is possible C# has more convenient ways (I do not know).