[StructLayout(LayoutKind.Explicit, CharSet = CharSet.Auto)]
struct MIXERCONTROL
{
[FieldOffset(0)] public UInt32 cbStruct;
[FieldOffset(4)] public UInt32 dwControlID;
[FieldOffset(8)] public UInt32 dwControlType;
[FieldOffset(12)] public UInt32 fdwControl;
[FieldOffset(16)] public UInt32 cMultipleItems;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_SHORT_NAME_CHARS)]
[FieldOffset(20)] public string szShortName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_LONG_NAME_CHARS)]
[FieldOffset(20 + MIXER_SHORT_NAME_CHARS)]
public string szName;
// Union "Bounds" start
[FieldOffset(20 + MIXER_SHORT_NAME_CHARS + MIXER_LONG_NAME_CHARS)]
public UnionBoundsSigned ubs;
[FieldOffset(20 + MIXER_SHORT_NAME_CHARS + MIXER_LONG_NAME_CHARS)]
public UnionBoundsUnsigned ubus; //insatnce of UnionBoundsSigned struct
/* [MarshalAs(UnmanagedType.ByValArray, SizeConst=6)]
[FieldOffset(20 + MIXER_SHORT_NAME_CHARS + MIXER_LONG_NAME_CHARS)]
public UInt32[] dwReserved1;*/
// Union "Bounds" end
// Union "Metrics" start
// additonal 6 DWORDs
[FieldOffset(20 + MIXER_SHORT_NAME_CHARS + MIXER_LONG_NAME_CHARS + 24)]
public UInt32 cSteps;
[FieldOffset(20 + MIXER_SHORT_NAME_CHARS + MIXER_LONG_NAME_CHARS + 24)]
public UInt32 cbCustomData;
/* [MarshalAs(UnmanagedType.ByValArray, SizeConst=6)]
[FieldOffset(20 + MIXER_SHORT_NAME_CHARS + MIXER_LONG_NAME_CHARS + 24)]
public UInt32[] dwReserved2;*/
// Union "Metrics" end
}
Structure MIXERCONTROL
Public TODO
End Structure
None.
None.