MixerSetControlDetails

C# Signature:

[DllImport("winmm.dll")]
static extern Int32 mixerSetControlDetails(IntPtr hmxobj,
   ref MixerControlDetails pmxcd, UInt32 fdwDetails);

VB Signature:

Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal hmxobj As IntPtr, ByVal pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Integer) As Integer

User-Defined Types:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 4)]
public struct MIXERCONTROL
{
     private UInt32 cbStruct;
     private UInt32 dwControlID;
     private UInt32 dwControlType;
     private UInt32 fdwControl;
     private UInt32 cMultipleItems;
     [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MixerXPNative.MIXER_SHORT_NAME_CHARS)]
     private string szShortName;
     [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MixerXPNative.MIXER_LONG_NAME_CHARS)]
     private string szName;
     public MIXERCONTROL_BOUNDS Bounds;
     public MIXERCONTROL_METRICS Metrics;

     #region Properties

     /// <summary>size in bytes of <see cref="MIXERCONTROL">MIXERCONTROL</see></summary>
     public UInt32 StructSize
     {
        get { return this.cbStruct; }
        set { this.cbStruct = value; }
     }
     /// <summary></summary>
     public UInt32 ControlID
     {
        get { return this.dwControlID; }
        set { this.dwControlID = value; }
     }
     /// <summary>MIXERCONTROL_CONTROLTYPE_xxx</summary>
     public MIXERCONTROL_CONTROLTYPE ControlType
     {
        get { return (MIXERCONTROL_CONTROLTYPE)this.dwControlType; }
        set { this.dwControlType = (UInt32)value; }
     }
     /// <summary>MIXERCONTROL_CONTROLF_xxx</summary>
     public MIXERCONTROL_CONTROLF Control
     {
        get { return (MIXERCONTROL_CONTROLF)this.fdwControl; }
        set { this.fdwControl = (uint)value; }
     }
     /// <summary>if MIXERCONTROL_CONTROLF_MULTIPLE set</summary>
     public UInt32 MultipleItems
     {
        get { return this.cMultipleItems; }
        set { this.cMultipleItems = value; }
     }
     /// <summary></summary>
     public String ShortName
     {
        get { return this.szShortName; }
        set { this.szShortName = value; }
     }
     /// <summary></summary>
     public String Name
     {
        get { return this.szName; }
        set { this.szName = value; }
     }

     #endregion
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 4)]
public struct MIXERCONTROL_BOUNDS
{
     private Int32 lMinimum;
     private Int32 lMaximum;
     //public uint dwMinimum; // Unioned with lMinimum
     //public uint dwMaximum; // Unioned with lMaximum
     //public uint dwReserved1; // Unioned with lMinimum
     //public uint dwReserved2; // Unioned with lMaximum
     private UInt32 dwReserved3;
     private UInt32 dwReserved4;
     private UInt32 dwReserved5;
     private UInt32 dwReserved6;

     #region Properties

     /// <summary>signed minimum for this control</summary>
     public Int32 Minimum
     {
        get { return this.lMinimum; }
        set { this.lMinimum = value; }
     }
     /// <summary>signed maximum for this control</summary>
     public Int32 Maximum
     {
        get { return this.lMaximum; }
        set { this.lMaximum = value; }
     }
     /// <summary>unsigned minimum for this control</summary>
     public UInt32 UnsignedMinimum
     {
        get { return (uint)this.lMinimum; }//TODO: something different
        set { this.lMinimum = (int)value; }
     }
     /// <summary>unsigned maximum for this control</summary>
     public UInt32 UnsignedMaximum
     {
        get { return (uint)this.lMaximum; }//TODO: something different
        set { this.lMaximum = (int)value; }
     }
     /// <summary></summary>
     public UInt32 Reserved1
     {
        get { return (uint)this.lMinimum; }//TODO: something different
        set { this.lMinimum = (int)value; }
     }
     /// <summary></summary>
     public UInt32 Reserved2
     {
        get { return (uint)this.lMaximum; }//TODO: something different
        set { this.lMaximum = (int)value; }
     }
     /// <summary></summary>
     public UInt32 Reserved3
     {
        get { return this.dwReserved3; }
        set { this.dwReserved3 = value; }
     }
     /// <summary></summary>
     public UInt32 Reserved4
     {
        get { return this.dwReserved4; }
        set { this.dwReserved4 = value; }
     }
     /// <summary></summary>
     public UInt32 Reserved5
     {
        get { return this.dwReserved5; }
        set { this.dwReserved5 = value; }
     }
     /// <summary></summary>
     public UInt32 Reserved6
     {
        get { return this.dwReserved6; }
        set { this.dwReserved6 = value; }
     }

     #endregion
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 4)]
public struct MIXERCONTROL_METRICS
{
     private UInt32 cSteps;
     //private UInt32 cbCustomData; //Unioned with cSteps
     //private UInt32 dwReserved1; //Unioned with cSteps
     private UInt32 dwReserved2;
     private UInt32 dwReserved3;
     private UInt32 dwReserved4;
     private UInt32 dwReserved5;
     private UInt32 dwReserved6;

     #region Properties

     /// <summary># of steps between min & max</summary>
     public UInt32 Steps
     {
        get { return this.cSteps; }
        set { this.cSteps = value; }
     }
     /// <summary>size in bytes of custom data</summary>
     public UInt32 CustomData
     {
        get { return this.cSteps; }
        set { this.cSteps = value; }
     }
     /// <summary>!!! needed? we have cbStruct....</summary>
     public UInt32 Reserved1
     {
        get { return this.cSteps; }//TODO: something different
        set { this.cSteps = value; }
     }
     /// <summary>!!! needed? we have cbStruct....</summary>
     public UInt32 Reserved2
     {
        get { return this.dwReserved2; }
        set { this.dwReserved2 = value; }
     }
     /// <summary>!!! needed? we have cbStruct....</summary>
     public UInt32 Reserved3
     {
        get { return this.dwReserved3; }
        set { this.dwReserved3 = value; }
     }
     /// <summary>!!! needed? we have cbStruct....</summary>
     public UInt32 Reserved4
     {
        get { return this.dwReserved4; }
        set { this.dwReserved4 = value; }
     }
     /// <summary>!!! needed? we have cbStruct....</summary>
     public UInt32 Reserved5
     {
        get { return this.dwReserved5; }
        set { this.dwReserved5 = value; }
     }
     /// <summary>!!! needed? we have cbStruct....</summary>
     public UInt32 Reserved6
     {
        get { return this.dwReserved6; }
        set { this.dwReserved6 = value; }
     }

     #endregion
}

User-Defined Types:

Tips & Tricks:

Última actualización