[DllImport("winmm.dll")]
static extern Int32 mixerGetLineControls(IntPtr hmxobj,
ref MIXERLINECONTROLS pmxlc, UInt32 fdwControls);
Declare Function mixerGetLineControls Lib "winmm.dll" (hmxobj As IntPtr, _
ByRef pmxlc As MIXERLINECONTROLS, fdwControls As Integer) As Integer
None.
Please add some!
The fdwControls parameter can be composed constants from two distinct enumerations, one of which is used frequently in the winmm library, and the other constant is only used with this method. Consequently, you should wrap up the method definition so that it is easier to use, and more consistent. In the following example, the actual extern is private, while the public static method lists both enums to callers.
[DllImport("winmm.dll")]
private static extern Int32 mixerGetLineControls(IntPtr hmxobj, ref MIXERLINECONTROLS pmxlc, uint fdwControls);
public static Int32 mixerGetLineControls(IntPtr hmxobj, ref MIXERLINECONTROLS pmxlc, MIXER_OBJECTF mixerFlags, MIXER_GETLINECONTROLSF controlsFlags)
{
uint flags = ((uint)mixerFlags | (uint)controlsFlags);
return mixerGetLineControls(hmxobj, ref pmxlc, flags);
}
public enum MIXER_OBJECTF : uint
{
HANDLE = 0x80000000u,
MIXER = 0x00000000u,
HMIXER = (HANDLE | MIXER),
WAVEOUT = 0x10000000u,
HWAVEOUT = (HANDLE | WAVEOUT),
WAVEIN = 0x20000000u,
HWAVEIN = (HANDLE | WAVEIN),
MIDIOUT = 0x30000000u,
HMIDIOUT = (HANDLE | MIDIOUT),
MIDIIN = 0x40000000u,
HMIDIIN = (HANDLE | MIDIIN),
AUX = 0x50000000u,
}
public enum MIXER_GETLINECONTROLSF : uint
{
ALL = 0x00000000u,
ONEBYID = 0x00000001u,
ONEBYTYPE = 0x00000002u,
QUERYMASK = 0x0000000Fu,
}
Please add some!
The ManagedWindowsApi project (http://mwinapi.sourceforge.net) provides a Mixer control.