Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than Structures, prefix the name with the module name and a period.
/// <summary>size of MIXERLINE structure</summary>
public UInt32 StructSize
{
get { return this.cbStruct; }
set { this.cbStruct = value; }
}
/// <summary>zero based destination index</summary>
public UInt32 Destination
{
get { return this.dwDestination; }
set { this.dwDestination = value; }
}
/// <summary>zero based source index (if source)</summary>
public UInt32 Source
{
get { return this.dwSource; }
set { this.dwSource = value; }
}
/// <summary>unique line id for mixer device</summary>
public UInt32 LineID
{
get { return this.dwLineID; }
set { this.dwLineID = value; }
}
/// <summary>state/information about line</summary>
public MIXERLINE_LINEF LineInformation
{
get { return (MIXERLINE_LINEF)this.fdwLine; }
set { this.fdwLine = (UInt32)value; }
}
/// <summary>driver specific information</summary>
public IntPtr UserPointer
{
get { return this.dwUser; }
set { this.dwUser = value; }
}
/// <summary>component type line connects to</summary>
public MIXERLINE_COMPONENTTYPE ComponentType
{
get { return (MIXERLINE_COMPONENTTYPE)this.dwComponentType; }
set { this.dwComponentType = (UInt32)value; }
}
/// <summary>number of channels line supports</summary>
public UInt32 Channels
{
get { return this.cChannels; }
set { this.cChannels = value; }
}
/// <summary>number of connections [possible]</summary>
public UInt32 Connections
{
get { return this.cConnections; }
set { this.cConnections = value; }
}
/// <summary>number of controls at this line</summary>
public UInt32 Controls
{
get { return this.cControls; }
set { this.cControls = 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; }
}
/// <summary>MIXERLINE_TARGETTYPE_xxxx</summary>
public MIXERLINE_TARGETTYPE Type
{
get { return (MIXERLINE_TARGETTYPE)this.dwType; }
set { this.dwType = (UInt32)value; }
}
/// <summary>target device ID of device type</summary>
public UInt32 DeviceID
{
get { return this.dwDeviceID; }
set { this.dwDeviceID = value; }
}
/// <summary>of target device</summary>
public UInt16 ManufacturerID
{
get { return this.wMid; }
set { this.wMid = value; }
}
/// <summary></summary>
public UInt16 ProductID
{
get { return this.wPid; }
set { this.wPid = value; }
}
/// <summary></summary>
public UInt32 DriverVersion
{
get { return this.vDriverVersion; }
set { this.vDriverVersion = value; }
}
/// <summary></summary>
public string PName
{
get { return this.szPname; }
set { this.szPname = value; }
}
#endregion
}
VB Definition:
Structure MIXERLINE
Dim cbStruct As UInteger
Dim dwDestination As UInteger
Dim dwSource As UInteger
Dim dwLineID As UInteger
Dim fdwLine As AudioLineStatus
Dim dwUser As IntPtr
Dim dwComponentType As MixerLineComponentType
Dim cChannels As UInteger
Dim cConnections As UInteger
Dim cControls As UInteger
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MIXER_SHORT_NAME_CHARS)> Dim szShortName As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MIXER_LONG_NAME_CHARS)> Dim sxName As String
Dim Target As MIXERLINETARGET
End Structure
The winmm dll may not execute properly on 64-bit systems. Consequently, the StructLayout must be Sequential, with CharSet = Ansi, and Pack = 4. Although this particular type does not have any special layout considerations (the c union keyword) which usually require explicit layout, some of the other types typically do require explicit layout. However, the explicit layout breaks down on 64-bit systems for any type with an IntPtr in the type. Consequently, the C# types have been redesigned to use Sequential layout so that they will automatically adjust to 64-bit systems. This means private fields with public properties which perform the gunky work of making it look like there is a union.
Sample Code:
There is more code that is necessary to use the C# types listed above.
Enum for all the possible component type values, used, for example, in [MIXERLINE].
8/26/2009 10:27:20 AM - -87.2.12.102
MIXERLINE struct, By Architect. [MIXERLINE].
10/25/2020 1:13:05 PM - -192.180.154.40
Click to read this page
4/6/2008 7:23:14 AM - anonymous
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
Please edit this page!
Do you have...
helpful tips?
corrections to the existing content?
alternate definitions?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing any supporting types needed.