Win32 API 日本語リファレンス
ホームMedia.Audio › MIXERLINEA

MIXERLINEA

構造体
サイズx64: 172 バイト / x86: 168 バイトパッキング1

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
cbStructDWORD4+0+0MIXERLINE 構造体のサイズ (バイト単位)。このメンバーは mixerGetLineInfo 関数を呼び出す前に初期化しておく必要があります。このメンバーに指定するサイズは、MIXERLINE 構造体を格納できる十分な大きさでなければなりません。mixerGetLineInfo から制御が戻ると、このメンバーには返された情報の実際のサイズが格納されます。返される情報が要求したサイズを超えることはありません。
dwDestinationDWORD4+4+4デスティネーションラインのインデックス。このメンバーは 0 から、mixerGetDevCaps 関数で取得した MIXERCAPS 構造体の cDestinations メンバーに指定された値より 1 小さい値までの範囲です。mixerGetLineInfo 関数を MIXER_GETLINEINFOF_DESTINATION フラグ付きで呼び出すと、デスティネーションラインのプロパティが返されます (この場合、dwSource メンバーは 0 に設定しなければなりません)。MIXER_GETLINEINFOF_SOURCE フラグを指定して呼び出した場合は、dwDestination メンバーに関連付けられた dwSource メンバーで指定されるソースのプロパティが返されます。
dwSourceDWORD4+8+8dwDestination メンバーに関連付けられたオーディオソースラインのインデックス。つまり、このメンバーは指定されたオーディオデスティネーションラインに関連付けられた n 番目のオーディオソースラインを指定します。このメンバーはデスティネーションラインでは使用されず、mixerGetLineInfo 関数で MIXER_GETLINEINFOF_DESTINATION を指定する場合は 0 に設定しなければなりません。MIXER_GETLINEINFOF_SOURCE フラグを指定した場合、このメンバーは 0 から、dwDestination メンバーで指定されたオーディオデスティネーションラインの cConnections メンバーに指定された値より 1 小さい値までの範囲になります。
dwLineIDDWORD4+12+12MIXERLINE 構造体が記述するオーディオラインを一意に参照する、ミキサーデバイスが定義した識別子。この識別子はミキサーデバイスごとに一意であり、任意の形式を取り得ます。アプリケーションはこの識別子を抽象的なハンドルとしてのみ使用してください。
fdwLineDWORD4+16+16

オーディオラインの状態フラグおよびサポートフラグ。このメンバーは常にアプリケーションに返され、初期化は不要です。

名前 説明
MIXERLINE_LINEF_ACTIVE
オーディオラインはアクティブです。アクティブなラインは、信号がそのラインを通過している可能性が高いことを示します。
MIXERLINE_LINEF_DISCONNECTED
オーディオラインが切断されています。切断されたラインに関連付けられたコントロールは変更できますが、その変更はラインが接続されるまで効果を持ちません。
MIXERLINE_LINEF_SOURCE
オーディオラインは、単一のオーディオデスティネーションラインに関連付けられたオーディオソースラインです。このフラグが設定されていない場合、このラインは 0 個以上のオーディオソースラインに関連付けられたオーディオデスティネーションラインです。

アプリケーションが波形オーディオ出力デバイスを使用していない場合、そのデバイスに関連付けられたオーディオラインはアクティブになりません (つまり、MIXERLINE_LINEF_ACTIVE フラグは設定されません)。

波形オーディオ出力デバイスが開かれている場合、そのオーディオラインはアクティブとみなされ、MIXERLINE_LINEF_ACTIVE フラグが設定されます。

一時停止中のデバイスやデータ供給が追いついていない波形オーディオ出力デバイスも、アクティブとみなされます。言い換えると、データが再生されているかどうかにかかわらず、アプリケーションが波形オーディオ出力デバイスを開いていれば、関連付けられたオーディオラインはアクティブとみなされます。

ラインがアクティブであると厳密に定義できない場合、ミキサーデバイスは常に MIXERLINE_LINEF_ACTIVE フラグを設定します。

dwUserUINT_PTR8/4+20+20ラインに対してオーディオデバイスが定義したインスタンスデータ。このメンバーは、この情報を返すミキサーデバイス専用に設計されたカスタムミキサーアプリケーション向けです。それ以外のアプリケーションはこのデータを無視してください。
dwComponentTypeMIXERLINE_COMPONENTTYPE4+28+24

このオーディオラインのコンポーネントの種類。アプリケーションはこの情報を使用して、適したグラフィックスを表示したり、特定のコンポーネントを検索したりできます。アプリケーションがコンポーネントの種類を使用しない場合、このメンバーは無視してください。このメンバーには次のいずれかの値を指定できます。

名前 説明
MIXERLINE_COMPONENTTYPE_DST_DIGITAL
オーディオラインはデジタルのデスティネーションです (例: DAT や CD オーディオデバイスへのデジタル入力)。
MIXERLINE_COMPONENTTYPE_DST_HEADPHONES
オーディオラインは、ヘッドフォンを駆動することを目的とした調整可能な (ゲインまたは減衰、あるいはその両方) デスティネーションです。ほとんどのオーディオカードはスピーカーとヘッドフォンに同じオーディオデスティネーションラインを使用しており、その場合、ミキサーデバイスは単に MIXERLINE_COMPONENTTYPE_DST_SPEAKERS の種類を使用します。
MIXERLINE_COMPONENTTYPE_DST_LINE
オーディオラインは、アナログ-デジタルコンバーター (ADC) の最終的な録音ソースとなるラインレベルのデスティネーションです (例: CD オーディオデバイスからのラインレベル入力)。パーソナルコンピューター向けのほとんどのオーディオカードは録音用オーディオソースラインに何らかのゲインを備えているため、ミキサーデバイスは MIXERLINE_COMPONENTTYPE_DST_WAVEIN の種類を使用します。
MIXERLINE_COMPONENTTYPE_DST_MONITOR
オーディオラインは、モニターに使用されるデスティネーションです。
MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
オーディオラインは、スピーカーを駆動することを目的とした調整可能な (ゲインまたは減衰、あるいはその両方) デスティネーションです。これは、パーソナルコンピューター向けオーディオカードのオーディオ出力における一般的なコンポーネントの種類です。
MIXERLINE_COMPONENTTYPE_DST_TELEPHONE
オーディオラインは、電話回線にルーティングされるデスティネーションです。
MIXERLINE_COMPONENTTYPE_DST_UNDEFINED
オーディオラインは、標準のコンポーネントの種類のいずれにも定義できないデスティネーションです。ミキサーデバイスは、Microsoft Corporation によって定義されていないラインコンポーネントの種類に対して、このコンポーネントの種類を使用する必要があります。
MIXERLINE_COMPONENTTYPE_DST_VOICEIN
オーディオラインは、音声入力の最終的な録音ソースとなるデスティネーションです。このコンポーネントの種類は MIXERLINE_COMPONENTTYPE_DST_WAVEIN とまったく同じですが、音声の録音や認識で使用される設定を特に対象としています。このラインのサポートはミキサーデバイスにとって任意です。多くのミキサーデバイスは MIXERLINE_COMPONENTTYPE_DST_WAVEIN のみを提供します。
MIXERLINE_COMPONENTTYPE_DST_WAVEIN
オーディオラインは、波形オーディオ入力 (ADC) の最終的な録音ソースとなるデスティネーションです。このラインは通常、何らかのゲインまたは減衰を提供します。これは、パーソナルコンピューター向けのほとんどのオーディオカードの録音ラインにおける一般的なコンポーネントの種類です。
MIXERLINE_COMPONENTTYPE_SRC_ANALOG
オーディオラインはアナログのソースです (例: ビデオカセットテープからのアナログ出力)。
MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY
オーディオラインは、補助オーディオラインを発生源とするソースです。このラインの種類は、MIXERLINE_COMPONENTTYPE_DST_SPEAKERS デスティネーションへルーティングしたり、MIXERLINE_COMPONENTTYPE_DST_WAVEIN デスティネーションから録音したりできる、ゲインまたは減衰を伴うソースを想定しています。
MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC
オーディオラインは、内蔵オーディオ CD の出力を発生源とするソースです。このコンポーネントの種類は、オーディオ CD (またはオーディオ CD を再生する CD-ROM) に接続することを目的としたオーディオソースラインを備えるオーディオカードのために用意されています。
MIXERLINE_COMPONENTTYPE_SRC_DIGITAL
オーディオラインはデジタルのソースです (例: DAT やオーディオ CD からのデジタル出力)。
MIXERLINE_COMPONENTTYPE_SRC_LINE
オーディオラインは、任意の録音ソースとして使用できるラインレベルのソースです (例: 外部ステレオからのラインレベル入力)。パーソナルコンピューター向けのほとんどのオーディオカードは録音用ソースラインに何らかのゲインを備えているため、ミキサーデバイスは MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY の種類を使用します。
MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE
オーディオラインはマイクの録音ソースです。パーソナルコンピューター向けのほとんどのオーディオカードは、少なくとも補助オーディオラインとマイク入力の 2 種類の録音ソースを提供します。マイクのオーディオラインは通常、何らかのゲインを提供します。マイクと補助オーディオラインで単一の入力を使用するオーディオカードは、MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE コンポーネントの種類を使用してください。
MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER
オーディオラインは、パーソナルコンピューターのスピーカーを発生源とするソースです。パーソナルコンピューター向けのいくつかのオーディオカードは、通常は内蔵スピーカーで再生される音をオーディオカードの出力とミックスする機能を備えています。一部のオーディオカードは、この出力を録音ソースとして使用する機能もサポートします。
MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER
オーディオラインは、内蔵シンセサイザーの出力を発生源とするソースです。パーソナルコンピューター向けのほとんどのオーディオカードは、何らかの MIDI シンセサイザーを備えています。
MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE
オーディオラインは、着信する電話回線を発生源とするソースです。
MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED
オーディオラインは、標準のコンポーネントの種類のいずれにも定義できないソースです。ミキサーデバイスは、Microsoft Corporation によって定義されていないラインコンポーネントの種類に対して、このコンポーネントの種類を使用する必要があります。
MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT
オーディオラインは、波形オーディオ出力のデジタル-アナログコンバーター (DAC) を発生源とするソースです。パーソナルコンピューター向けのほとんどのオーディオカードは、このコンポーネントの種類を MIXERLINE_COMPONENTTYPE_DST_SPEAKERS デスティネーションへのソースとして提供します。一部のカードでは、このソースを MIXERLINE_COMPONENTTYPE_DST_WAVEIN デスティネーションにルーティングすることもできます。
cChannelsDWORD4+32+28

オーディオラインに対して独立して操作できる個別チャネルの最大数。ラインは少なくとも 1 つのチャネルを持つ必要があるため、このフィールドの最小値は 1 です。

パーソナルコンピューター向けの最近のオーディオカードのほとんどはステレオデバイスであり、その場合このメンバーの値は 2 です。

チャネル 1 は左チャネル、チャネル 2 は右チャネルとみなされます。

マルチチャネルのラインには、1 つ以上のユニフォームコントロール (ラインのすべてのチャネルに一様に作用するコントロール) が関連付けられている場合があります。

cConnectionsDWORD4+36+32オーディオラインに関連付けられた接続の数。このメンバーはオーディオデスティネーションラインでのみ使用され、それに関連付けられたオーディオソースラインの数を指定します。ソースライン、およびオーディオソースラインが関連付けられていないデスティネーションラインでは、このメンバーは常に 0 です。
cControlsDWORD4+40+36オーディオラインに関連付けられたコントロールの数。この値は 0 になることがあります。ラインにコントロールが関連付けられていない場合、そのラインは MIXERCONTROL_CONTROLTYPE_MUXMIXERCONTROL_CONTROLTYPE_MIXER で選択できるものの、信号の操作は行えないソースである可能性が高いです。
szShortNameCHAR16+44+40dwLineID メンバーで指定されたオーディオミキサーラインを説明する短い文字列。この説明は、ラインの簡潔なラベルとして適したものにしてください。
szNameCHAR64+60+56dwLineID メンバーで指定されたオーディオミキサーラインを説明する文字列。この説明は、ラインの完全な説明として適したものにしてください。
Target_Target_e__Struct48+124+120ターゲットメディアの情報。

構造体: _Target_e__Struct x64 48B / x86 48B

フィールドサイズx64x86説明
dwTypeDWORD4+0+0

MIXERLINE 構造体に記述されたオーディオラインに関連付けられたターゲットメディアデバイスの種類。アプリケーションは、使用しないメディアデバイスの種類のターゲット情報を無視しなければなりません。次の値が定義されています。

名前 説明
MIXERLINE_TARGETTYPE_AUX
MIXERLINE 構造体が記述するオーディオラインは、MIXERLINE 構造体の Target 構造体メンバーの残りのメンバーで詳細が示される補助デバイスに厳密にバインドされています。
MIXERLINE_TARGETTYPE_MIDIIN
MIXERLINE 構造体が記述するオーディオラインは、MIXERLINE 構造体の Target 構造体メンバーの残りのメンバーで詳細が示されるMIDI 入力デバイスに厳密にバインドされています。
MIXERLINE_TARGETTYPE_MIDIOUT
MIXERLINE 構造体が記述するオーディオラインは、MIXERLINE 構造体の Target 構造体メンバーの残りのメンバーで詳細が示されるMIDI 出力デバイスに厳密にバインドされています。
MIXERLINE_TARGETTYPE_UNDEFINED
MIXERLINE 構造体が記述するオーディオラインは、定義されたメディアの種類に厳密にはバインドされていません。MIXERLINE 構造体の Target 構造体の残りのメンバーはすべて無視してください。アプリケーションは、mixerGetLineInfo 関数を MIXER_GETLINEINFOF_TARGETTYPE フラグ付きで呼び出すときに MIXERLINE_TARGETTYPE_UNDEFINED ターゲットの種類を使用できません。
MIXERLINE_TARGETTYPE_WAVEIN
MIXERLINE 構造体が記述するオーディオラインは、MIXERLINE 構造体の Target 構造体メンバーの残りのメンバーで詳細が示される波形オーディオ入力デバイスに厳密にバインドされています。
MIXERLINE_TARGETTYPE_WAVEOUT
MIXERLINE 構造体が記述するオーディオラインは、MIXERLINE 構造体の Target 構造体メンバーの残りのメンバーで詳細が示される波形オーディオ出力デバイスに厳密にバインドされています。
dwDeviceIDDWORD4+4+4dwType メンバーが MIXERLINE_TARGETTYPE_UNDEFINED 以外のターゲットの種類である場合の、ターゲットメディアデバイスの現在のデバイス識別子。この識別子は、関連付けられたメディアデバイスの現在のメディアデバイスインデックスと同一です。mixerGetLineInfo 関数を MIXER_GETLINEINFOF_TARGETTYPE フラグ付きで呼び出す場合、このメンバーは入力時には無視され、オーディオミキサーマネージャーによって呼び出し元に返されます。
wMidWORD2+8+8dwType メンバーが MIXERLINE_TARGETTYPE_UNDEFINED 以外のターゲットの種類である場合の、ターゲットメディアデバイスの製造元識別子。この識別子は、関連付けられたメディアのデバイス機能構造体の wMid メンバーと同一です。製造元識別子は Manufacturer and Product Identifiers で定義されています。
wPidWORD2+10+10dwType メンバーが MIXERLINE_TARGETTYPE_UNDEFINED 以外のターゲットの種類である場合の、ターゲットメディアデバイスの製品識別子。この識別子は、関連付けられたメディアのデバイス機能構造体の wPid メンバーと同一です。製品識別子は Manufacturer and Product Identifiers で定義されています。
vDriverVersionDWORD4+12+12dwType メンバーが MIXERLINE_TARGETTYPE_UNDEFINED 以外のターゲットの種類である場合の、ターゲットメディアデバイスのドライバーのバージョン。このバージョンは、関連付けられたメディアのデバイス機能構造体の vDriverVersion メンバーと同一です。
szPnameCHAR32+16+16dwType メンバーが MIXERLINE_TARGETTYPE_UNDEFINED 以外のターゲットの種類である場合の、ターゲットメディアデバイスの製品名。この名前は、関連付けられたメディアのデバイス機能構造体の szPname メンバーと同一です。

公式ドキュメント

MIXERLINE 構造体は、オーディオラインの状態とメトリックを記述します。

解説(Remarks)

メモ

mmeapi.h ヘッダーは MIXERLINE を、UNICODE プリプロセッサー定数の定義に応じてこの関数の ANSI 版と Unicode 版を自動的に選択するエイリアスとして定義しています。エンコーディング中立のエイリアスと、エンコーディング中立ではないコードを混在させて使用すると、不一致が生じてコンパイルエラーや実行時エラーの原因になることがあります。詳細については、Conventions for Function Prototypes を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// MIXERLINEA  (x64 172 / x86 168 バイト)
#pragma pack(push, 1)
typedef struct MIXERLINEA {
    DWORD cbStruct;
    DWORD dwDestination;
    DWORD dwSource;
    DWORD dwLineID;
    DWORD fdwLine;
    UINT_PTR dwUser;
    MIXERLINE_COMPONENTTYPE dwComponentType;
    DWORD cChannels;
    DWORD cConnections;
    DWORD cControls;
    CHAR szShortName[16];
    CHAR szName[64];
    _Target_e__Struct Target;
} MIXERLINEA;
#pragma pack(pop)
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct MIXERLINEA
{
    public uint cbStruct;
    public uint dwDestination;
    public uint dwSource;
    public uint dwLineID;
    public uint fdwLine;
    public UIntPtr dwUser;
    public uint dwComponentType;
    public uint cChannels;
    public uint cConnections;
    public uint cControls;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] public sbyte[] szShortName;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] public sbyte[] szName;
    public _Target_e__Struct Target;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure MIXERLINEA
    Public cbStruct As UInteger
    Public dwDestination As UInteger
    Public dwSource As UInteger
    Public dwLineID As UInteger
    Public fdwLine As UInteger
    Public dwUser As UIntPtr
    Public dwComponentType As UInteger
    Public cChannels As UInteger
    Public cConnections As UInteger
    Public cControls As UInteger
    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=16)> Public szShortName() As SByte
    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=64)> Public szName() As SByte
    Public Target As _Target_e__Struct
End Structure
import ctypes
from ctypes import wintypes

class MIXERLINEA(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("cbStruct", wintypes.DWORD),
        ("dwDestination", wintypes.DWORD),
        ("dwSource", wintypes.DWORD),
        ("dwLineID", wintypes.DWORD),
        ("fdwLine", wintypes.DWORD),
        ("dwUser", ctypes.c_size_t),
        ("dwComponentType", wintypes.DWORD),
        ("cChannels", wintypes.DWORD),
        ("cConnections", wintypes.DWORD),
        ("cControls", wintypes.DWORD),
        ("szShortName", ctypes.c_byte * 16),
        ("szName", ctypes.c_byte * 64),
        ("Target", _Target_e__Struct),
    ]
#[repr(C, packed(1))]
pub struct MIXERLINEA {
    pub cbStruct: u32,
    pub dwDestination: u32,
    pub dwSource: u32,
    pub dwLineID: u32,
    pub fdwLine: u32,
    pub dwUser: usize,
    pub dwComponentType: u32,
    pub cChannels: u32,
    pub cConnections: u32,
    pub cControls: u32,
    pub szShortName: [i8; 16],
    pub szName: [i8; 64],
    pub Target: _Target_e__Struct,
}
import "golang.org/x/sys/windows"

type MIXERLINEA struct {
	cbStruct uint32
	dwDestination uint32
	dwSource uint32
	dwLineID uint32
	fdwLine uint32
	dwUser uintptr
	dwComponentType uint32
	cChannels uint32
	cConnections uint32
	cControls uint32
	szShortName [16]int8
	szName [64]int8
	Target _Target_e__Struct
}
type
  MIXERLINEA = packed record
    cbStruct: DWORD;
    dwDestination: DWORD;
    dwSource: DWORD;
    dwLineID: DWORD;
    fdwLine: DWORD;
    dwUser: NativeUInt;
    dwComponentType: DWORD;
    cChannels: DWORD;
    cConnections: DWORD;
    cControls: DWORD;
    szShortName: array[0..15] of Shortint;
    szName: array[0..63] of Shortint;
    Target: _Target_e__Struct;
  end;
const MIXERLINEA = extern struct {
    cbStruct: u32,
    dwDestination: u32,
    dwSource: u32,
    dwLineID: u32,
    fdwLine: u32,
    dwUser: usize,
    dwComponentType: u32,
    cChannels: u32,
    cConnections: u32,
    cControls: u32,
    szShortName: [16]i8,
    szName: [64]i8,
    Target: _Target_e__Struct,
};
type
  MIXERLINEA {.packed.} = object
    cbStruct: uint32
    dwDestination: uint32
    dwSource: uint32
    dwLineID: uint32
    fdwLine: uint32
    dwUser: uint
    dwComponentType: uint32
    cChannels: uint32
    cConnections: uint32
    cControls: uint32
    szShortName: array[16, int8]
    szName: array[64, int8]
    Target: _Target_e__Struct
align(1)
struct MIXERLINEA
{
    uint cbStruct;
    uint dwDestination;
    uint dwSource;
    uint dwLineID;
    uint fdwLine;
    size_t dwUser;
    uint dwComponentType;
    uint cChannels;
    uint cConnections;
    uint cControls;
    byte[16] szShortName;
    byte[64] szName;
    _Target_e__Struct Target;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; MIXERLINEA サイズ: 168 バイト(x86)
dim st, 42    ; 4byte整数×42(構造体サイズ 168 / 4 切り上げ)
; cbStruct : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwDestination : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwSource : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; dwLineID : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; fdwLine : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; dwUser : UINT_PTR (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; dwComponentType : MIXERLINE_COMPONENTTYPE (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; cChannels : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; cConnections : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; cControls : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; szShortName : CHAR (+40, 16byte)  varptr(st)+40 を基点に操作(16byte:入れ子/配列)
; szName : CHAR (+56, 64byte)  varptr(st)+56 を基点に操作(64byte:入れ子/配列)
; Target : _Target_e__Struct (+120, 48byte)  varptr(st)+120 を基点に操作(48byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MIXERLINEA サイズ: 172 バイト(x64)
dim st, 43    ; 4byte整数×43(構造体サイズ 172 / 4 切り上げ)
; cbStruct : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwDestination : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwSource : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; dwLineID : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; fdwLine : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; dwUser : UINT_PTR (+20, 8byte)  qpoke st,20,値 / qpeek(st,20)  ※IronHSPのみ。3.7/3.8は lpoke st,20,下位 : lpoke st,24,上位
; dwComponentType : MIXERLINE_COMPONENTTYPE (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; cChannels : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; cConnections : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; cControls : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; szShortName : CHAR (+44, 16byte)  varptr(st)+44 を基点に操作(16byte:入れ子/配列)
; szName : CHAR (+60, 64byte)  varptr(st)+60 を基点に操作(64byte:入れ子/配列)
; Target : _Target_e__Struct (+124, 48byte)  varptr(st)+124 を基点に操作(48byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MIXERLINEA, pack=1
    #field int cbStruct
    #field int dwDestination
    #field int dwSource
    #field int dwLineID
    #field int fdwLine
    #field intptr dwUser
    #field int dwComponentType
    #field int cChannels
    #field int cConnections
    #field int cControls
    #field byte szShortName 16
    #field byte szName 64
    #field _Target_e__Struct Target
#endstruct

stdim st, MIXERLINEA        ; NSTRUCT 変数を確保
st->cbStruct = 100
mes "cbStruct=" + st->cbStruct