waveInGetDevCaps (coredll)
Last changed: -46.188.24.45

.
Summary
TODO - a short description

C# Signature:

[DllImport("winmm.dll", SetLastError = true, CharSet = CharSet.Auto)]

public static extern uint waveInGetDevCaps(uint uDeviceID, ref WAVEINCAPS pwic, uint cbwic);

VB Signature:

Declare Auto Function waveInGetDevCaps Lib "winmm.dll" (ByVal uDeviceID as Integer, ByRef lpCaps As WAVEINCAPS, _

ByVal uSize As Integer) As Integer

Structures Used:

C# 2005 version of structure

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]

public struct WAVEINCAPS

{

    public ushort wMid;
    public ushort wPid;
    public uint vDriverVersion;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
    public string szPname;
    public uint dwFormats;
    public ushort wChannels;
    public ushort wReserved1;

}

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

Taken from openNetCF in OpenNETCF.Win32.Wave

Tips & Tricks:

Please add some!

Sample Code:

    public string[] GetRecordingDeviceList(){
        uint total = waveInGetNumDevs();
        string[] list = new string[total];
        WAVEINCAPS pwoc = new WAVEINCAPS();
        for (uint i = 0; i < total; i++) {
           waveInGetDevCaps(i, ref pwoc, (uint)Marshal.SizeOf(typeof(WAVEINCAPS)));
        list[i] = pwoc.szPname;
        }
        return list;
    }

Documentation