waveOutGetDevCaps

C# Signature:

[DllImport("winmm.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern uint waveOutGetDevCaps(IntPtr hwo,ref WAVEOUTCAPS pwoc,uint cbwoc);

VB Signature:

Declare Auto Function waveOutGetDevCaps Lib "winmm.dll" (ByVal uDeviceID as Integer, ByRef lpCaps As WAVEOUTCAPS, _
ByVal uSize As Integer) As Integer

Constants Used:

Public Const C_MAXPNAMELEN As Integer = 32
Public Const WAVE_MAPPER As Integer = -1    'Specifies default device ID

Structures Used:

VB.NET 2005 - Use the following structure: WAVEOUTCAPS

<Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential, CharSet:=Runtime.InteropServices.CharSet.Auto)> _
Public Structure WAVEOUTCAPS
     Public wMid As Short
     Public wPid As Short
     Public vDriverVersion As Integer

     <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=32)> _
     Public szPname As String

     Public dwFormats As Integer
     Public wChannels As Short
     Public wReserved As Short
     Public dwSupport As Integer
End Structure

C# 2005 version of structure
[System.Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public struct WAVEOUTCAPS
{
     public short wMid;
     public short wPid;
     public int vDriverVersion;

     [MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
     public string szPname;

     public int dwFormats;
     public short wChannels;
     public short wReserved;
     public int dwSupport;
}

Sample Code:

C# Code

Última actualización