mixerGetDevCaps (winmm)
Last changed: anonymous

.
Summary
The mixerGetDevCaps function queries a specified mixer device to determine its capabilities.

C# Signature:

   [DllImport("winmm.dll", EntryPoint="mixerGetDevCaps", SetLastError=true)]
   private static extern uint MixerGetDevCaps(int mixerId, ref MixerCaps mixerCaps, int mixerCapsSize);

VB Signature:

   <DllImport("winmm.dll", EntryPoint:="mixerGetDevCaps", SetLastError:=True)> _
   Private Shared Function MixerGetDevCaps(ByVal mixerId As Integer, ByRef mixerCaps As MixerCaps, ByVal mixerCapsSize As Integer) As UInteger
   End Function

User-Defined Types:

MixerCaps is in Structures.MIXERCAPS

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

   using System;
   using System.Runtime.InteropServices;

   namespace ConsoleApplication3
   {
       class Program
       {
       [DllImport("winmm.dll", EntryPoint = "mixerGetNumDevs")]
       private static extern uint MixerGetNumDevs();

       [DllImport("winmm.dll", EntryPoint = "mixerGetDevCaps", SetLastError = true)]
       private static extern uint MixerGetDevCaps(int mixerId, ref MixerCaps mixerCaps, int mixerCapsSize);

       [StructLayout(LayoutKind.Sequential)]
       struct MixerCaps
       {
           public ushort ManufacturerID;
           public ushort ProductId;
           public int Version;
           [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
           public String ProductName;
           public uint Support;
           public uint Destinations;
           public override String ToString()
           {
           return String.Format("Manufacturer ID: {0}, Product ID: {1}, Driver Version: {2}, Product Name: \"{3}\", Support: {4}, Destinations: {5}", ManufacturerID, ProductId, Version, ProductName, Support, Destinations);
           }
       }

       static void Main(string[] args)
       {
           uint numDevs = MixerGetNumDevs();            
           for (int mixerId = 0; mixerId < numDevs; mixerId++)
           {
           MixerCaps caps = new MixerCaps();
           uint result = MixerGetDevCaps(mixerId, ref caps, Marshal.SizeOf(caps));
           Console.WriteLine(caps.ToString());        
           }
           Console.ReadKey();
       }
       }
   }

Documentation