Win32 API 日本語リファレンス
ホームDevices.Tapi › LINEADDRESSCAPS

LINEADDRESSCAPS

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

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

フィールド

フィールドサイズx64x86説明
dwTotalSizeDWORD4+0+0このデータ構造体に割り当てられた合計サイズ (バイト単位)。
dwNeededSizeDWORD4+4+4返されるすべての情報を格納するために必要な、このデータ構造体のサイズ (バイト単位)。
dwUsedSizeDWORD4+8+8このデータ構造体のうち、有用な情報が格納されている部分のサイズ (バイト単位)。
dwLineDeviceIDDWORD4+12+12このアドレスが関連付けられている回線デバイスのデバイス識別子。
dwAddressSizeDWORD4+16+16アドレスフィールドのサイズ (バイト単位)。
dwAddressOffsetDWORD4+20+20構造体の先頭から、可変サイズのアドレスフィールドまでのオフセット。このフィールドのサイズは dwAddressSize で指定されます。
dwDevSpecificSizeDWORD4+24+24デバイス固有フィールドのサイズ (バイト単位)。
dwDevSpecificOffsetDWORD4+28+28構造体の先頭から、可変サイズのデバイス固有フィールドまでのオフセット。このフィールドのサイズは dwDevSpecificSize で指定されます。
dwAddressSharingDWORD4+32+32アドレスの共有モード。このメンバーには LINEADDRESSSHARING_ 定数 のいずれかを指定できます。
dwAddressStatesDWORD4+36+36LINE_ADDRESSSTATE メッセージによってアプリケーションに通知される可能性のあるアドレス状態の変化。このメンバーは 1 つ以上の LINEADDRESSSTATE_ 定数 を使用します。
dwCallInfoStatesDWORD4+40+40このアドレス上のすべての呼び出しにおいて意味を持つ呼び出し情報要素。アプリケーションは、これらの状態の一部の変化について LINE_CALLINFO メッセージで通知を受け取ることがあります。このメンバーは 1 つ以上の LINECALLINFOSTATE_ 定数 を使用します。
dwCallerIDFlagsDWORD4+44+44このアドレス上の呼び出しに対して提供できる相手先識別情報の種類。ここでの caller は、セッションの発信元です。1 つ以上の LINECALLPARTYID_ 定数
dwCalledIDFlagsDWORD4+48+48このアドレス上の呼び出しに対して提供できる相手先識別情報の種類。ここでの "called" は、元の宛先を指します。1 つ以上の LINECALLPARTYID_ 定数
dwConnectedIDFlagsDWORD4+52+52このアドレス上の呼び出しに対して提供できる相手先識別情報の種類。1 つ以上の LINECALLPARTYID_ 定数
dwRedirectionIDFlagsDWORD4+56+56このアドレス上の呼び出しに対して提供できる相手先識別情報の種類。ここでの "redirection" は、新しい宛先を指します。1 つ以上の LINECALLPARTYID_ 定数
dwRedirectingIDFlagsDWORD4+60+60このアドレス上の呼び出しに対して提供できる相手先識別情報の種類。ここでの "redirecting" は、リダイレクトを行ったアドレスを指します。1 つ以上の LINECALLPARTYID_ 定数
dwCallStatesDWORD4+64+64このアドレス上の呼び出しについて報告できる呼び出し状態。このメンバーは 1 つ以上の LINECALLSTATE_ 定数 を使用します。
dwDialToneModesDWORD4+68+68このアドレスで発信される呼び出しについて報告できるダイヤルトーンモード。このメンバーは、dialtone 呼び出し状態を報告できる場合にのみ意味を持ちます。このメンバーは 1 つ以上の LINEDIALTONEMODE_ 定数 を使用します。
dwBusyModesDWORD4+72+72このアドレスで発信される呼び出しについて報告できる話中モード。このメンバーは、busy 呼び出し状態を報告できる場合にのみ意味を持ちます。このメンバーは 1 つ以上の LINEBUSYMODE_ 定数 を使用します。
dwSpecialInfoDWORD4+76+76このアドレスで発信される呼び出しについて報告できる特殊情報の種類。このメンバーは、specialInfo 呼び出し状態を報告できる場合にのみ意味を持ちます。このメンバーは 1 つ以上の LINESPECIALINFO_ 定数 を使用します。
dwDisconnectModesDWORD4+80+80このアドレスで発信される呼び出しについて報告できる切断モード。このメンバーは、disconnected 呼び出し状態を報告できる場合にのみ意味を持ちます。このメンバーは 1 つ以上の LINEDISCONNECTMODE_ 定数 を使用します。
dwMaxNumActiveCallsDWORD4+84+84このアドレスが処理できるアクティブなコールアピアランスの最大数。この数には、保留中の呼び出し、および転送または会議のために保留中の呼び出しは含まれません。
dwMaxNumOnHoldCallsDWORD4+88+88このアドレスで保留にできるコールアピアランスの最大数。
dwMaxNumOnHoldPendingCallsDWORD4+92+92このアドレスで、転送または会議のために保留にできるコールアピアランスの最大数。
dwMaxNumConferenceDWORD4+96+96このアドレスで 1 つの会議通話に参加できる相手の最大数。
dwMaxNumTransConfDWORD4+100+100lineSetupTransfer を使用して一般的な相談呼び出しとして開始された会議通話に追加できる相手の数 ("自分自身" を含む)。
dwAddrCapFlagsDWORD4+104+104さまざまなアドレス機能を示すパックされたビットフラグ。このメンバーは 1 つ以上の LINEADDRCAPFLAGS_ 定数 を使用します。
dwCallFeaturesDWORD4+108+108LINECALLFEATURE_ 定数 を使用して表される、このアドレス上のすべての呼び出しで利用できる交換機能または機能。このメンバーは、アドレスで利用できる可能性のある呼び出し関連の機能 (動的な可用性ではなく、静的な可用性) を表します。サポートされている機能を実行するには、呼び出しが適切な状態にあり、基になる回線デバイスが互換性のあるモードで開かれている必要があります。ビット位置の 0 は、対応する機能が利用できないことを示します。1 は、アプリケーションが呼び出しに対する適切な権限を持ち、その操作が意味を持つ適切な状態に呼び出しがある場合に、対応する機能が利用できる可能性があることを示します。このメンバーにより、アプリケーションはアドレスがサポートできる (およびサポートできない) 呼び出し機能を確認できます。
dwRemoveFromConfCapsDWORD4+112+112会議通話から呼び出しを削除するためのアドレスの機能。このメンバーは LINEREMOVEFROMCONF_ 定数 のいずれかを使用します。
dwRemoveFromConfStateDWORD4+116+116会議通話から削除された後の呼び出しの状態を、LINECALLSTATE_ 定数を使用して指定します。
dwTransferModesDWORD4+120+120転送要求を解決するためのアドレスの機能。このメンバーは LINETRANSFERMODE_ 定数 のいずれかを使用します。
dwParkModesDWORD4+124+124このアドレスで利用できるさまざまなコールパークモード。このメンバーは LINEPARKMODE_ 定数 のいずれかを使用します。
dwForwardModesDWORD4+128+128このアドレスで利用できるさまざまな転送モード。このメンバーは LINEFORWARDMODE_ 定数 を使用します。
dwMaxForwardEntriesDWORD4+132+132lineForwardlpForwardList パラメーターに渡すことができるエントリの最大数。
dwMaxSpecificEntriesDWORD4+136+136lineForward に渡される lpForwardList パラメーター内のエントリのうち、特定の発信者 ID に基づく転送指示 (選択的着信転送) を格納できるエントリの最大数。選択的着信転送がサポートされていない場合、このメンバーは 0 です。
dwMinFwdNumRingsDWORD4+140+140呼び出しが正式に "応答なし" と見なされる時点を決定するために設定できる呼び出し音の最小回数。
dwMaxFwdNumRingsDWORD4+144+144呼び出しが正式に "応答なし" と見なされる時点を決定するために設定できる呼び出し音の最大回数。この呼び出し音の回数を設定できない場合、dwMinFwdNumRingsdwMaxNumRings は等しくなります。
dwMaxCallCompletionsDWORD4+148+148この回線デバイスで同時に未処理にできるコールコンプリーション要求の最大数。0 は、コールコンプリーションが利用できないことを意味します。
dwCallCompletionCondsDWORD4+152+152コールコンプリーションを要求できるさまざまな呼び出し条件。このメンバーは 1 つ以上の LINECALLCOMPLCOND_ 定数を使用します。
dwCallCompletionModesDWORD4+156+156呼び出しを完了する方法。このメンバーは LINECALLCOMPLMODE_ 定数のいずれかを使用します。
dwNumCompletionMessagesDWORD4+160+160LINECALLCOMPLMODE_MESSAGE オプションを使用する際に選択できるコールコンプリーションメッセージの数。個々のメッセージは、0 から dwNumCompletionMessages より 1 小さい値までの範囲の値で識別されます。
dwCompletionMsgTextEntrySizeDWORD4+164+164dwCompletionMsgTextSize および dwCompletionMsgTextOffset で指定される各コールコンプリーションテキスト記述のサイズ (バイト単位)。
dwCompletionMsgTextSizeDWORD4+168+168コールコンプリーションテキストのサイズ (バイト単位)。
dwCompletionMsgTextOffsetDWORD4+172+172このデータ構造体の先頭から、各コールコンプリーションメッセージに関する説明テキストを格納する可変サイズのフィールドまでのオフセット。各メッセージの長さは dwCompletionMsgTextEntrySize バイトです。これらのテキスト記述の文字列形式は、回線のデバイス機能の dwStringFormat で示されます。このフィールドのサイズは dwCompletionMsgTextSize で指定されます。
dwAddressFeaturesDWORD4+176+176LINEADDRFEATURE_ 定数 を使用して表される、このアドレスで利用できる機能。サポートされている機能を実行するには、アドレスが適切な状態にあり、基になる回線デバイスが互換性のあるモードで開かれている必要があります。ビット位置の 0 は、対応する機能が利用できないことを示します。1 は、その操作が意味を持つ適切な状態にアドレスがある場合に、対応する機能が利用できる可能性があることを示します。このメンバーにより、アプリケーションはアドレスがサポートできる (およびサポートできない) アドレス機能を確認できます。
dwPredictiveAutoTransferStatesDWORD4+180+180予測ダイヤラーによって発信された呼び出しを、別のアドレスへ自動的に転送するように設定できる呼び出し状態。1 つ以上の LINECALLSTATE_ 定数 です。値 0 は、呼び出し状態に基づく自動転送が利用できないことを示します。
dwNumCallTreatmentsDWORD4+184+184dwCallTreatmentListSize および dwCallTreatmentListOffset で区切られる LINECALLTREATMENTENTRY 構造体の配列内のエントリ数。
dwCallTreatmentListSizeDWORD4+188+188コールトリートメント配列のサイズ (バイト単位)。
dwCallTreatmentListOffsetDWORD4+192+192構造体の先頭から、このアドレスでサポートされるコールトリートメント ( lineSetCallTreatment を使用して選択できます) を指定する LINECALLTREATMENTENTRY 構造体の配列までのオフセット。値は dwNumCallTreatments に SIZEOF(LINECALLTREATMENTENTRY) を掛けた値です。このフィールドのサイズは dwCallTreatmentListSize で指定されます。
dwDeviceClassesSizeDWORD4+196+196サポートされるデバイスクラスの一覧のサイズ (バイト単位)。
dwDeviceClassesOffsetDWORD4+200+200構造体の先頭から、 lineGetID で使用するためにこのアドレスでサポートされるデバイスクラス識別子から成る文字列までのオフセット。各要素は null 文字で区切られ、最後のクラス識別子の後には 2 つの null 文字が続きます。このフィールドのサイズは dwDeviceClassesSize で指定されます。
dwMaxCallDataSizeDWORD4+204+204アプリケーションが lineSetCallData を使用して LINECALLINFO に設定できる最大バイト数。
dwCallFeatures2DWORD4+208+208LINECALLFEATURE2_ 定数 を使用して表される、このアドレス上のすべての呼び出しで利用できる追加の交換機能または機能。dwCallFeatures メンバーの拡張です。
dwMaxNoAnswerTimeoutDWORD4+212+212呼び出しを発信する際に LINECALLPARAMSdwNoAnswerTimeout メンバーに設定できる最大値 (秒単位)。値 0 は、応答のない呼び出しの自動中止がサービスプロバイダーでサポートされていないか、タイムアウト値をアプリケーションから調整できないことを示します。
dwConnectedModesDWORD4+216+216このアドレス上の呼び出しについて、 LINECALLSTATUSdwCallStateMode メンバーおよび LINE_CALLSTATE メッセージに現れる可能性のある LINECONNECTEDMODE_ 値。
dwOfferingModesDWORD4+220+220このアドレス上の呼び出しについて、 LINECALLSTATUSdwCallStateMode メンバーおよび LINE_CALLSTATE メッセージに現れる可能性のある LINEOFFERINGMODE_ 値。
dwAvailableMediaModesDWORD4+224+224dwAddressFeatures メンバーが新しい呼び出しが可能であることを示している場合に、このアドレスで作成される新しい呼び出しで使用できるメディアの種類 (モード)。このメンバーが 0 の場合、サービスプロバイダーがどのメディアの種類を利用できるかを認識していないか、示すことができないことを意味し、その場合は LINEDEVCAPSdwMediaModes メンバーで示されるメディアの種類のいずれか、またはすべてが利用できる可能性があります。

公式ドキュメント

LINEADDRESSCAPS 構造体は、指定されたアドレスの機能を記述します。 lineGetAddressCaps 関数および TSPI_lineGetAddressCaps 関数は、 LINEADDRESSCAPS 構造体を返します。

解説(Remarks)

デバイス固有の拡張には、このデータ構造体の可変サイズ領域である DevSpecific (dwDevSpecificSize および dwDevSpecificOffset) を使用してください。

古いアプリケーションは、 LINEADDRESSCAPS 構造体にこのメンバーを含めずにコンパイルされており、新しいサイズよりも小さい SIZEOF(LINEADDRESSCAPS) を使用します。アプリケーションは lineGetAddressCaps 関数に dwAPIVersion パラメーターを渡します。TAPI はこの状況を処理する際の判断材料としてこれを使用できます。指定された dwAPIVersion メンバーで定義される構造体の固定部分のサイズより小さい dwTotalSize メンバーをアプリケーションが渡した場合、LINEERR_STRUCTURETOOSMALL が返されます。アプリケーションが十分なメモリを割り当てている場合、 TSPI_lineGetAddressCaps を呼び出す前に、TAPI は dwNeededSize メンバーと dwUsedSize メンバーに、指定された API バージョンにおける構造体の固定サイズを設定します。

(新しい API バージョンをサポートする) 新しいサービスプロバイダーは、渡された API バージョンを確認する必要があります。API バージョンがプロバイダーのサポートする最上位のバージョンより低い場合、サービスプロバイダーは古い API バージョンでサポートされていないフィールドを設定してはなりません。これらは古い構造体では可変部分に該当するためです。

新しいアプリケーションは、ネゴシエートされた API バージョンを認識し、そのネゴシエートされた API バージョンにおける構造体の固定部分の本来の終端を超えたフィールドの内容を参照してはなりません。

dwPredictiveAutoTransferStates から dwAvailableMediaModes までのメンバーは、 lineGetAddressCaps を呼び出すときに API バージョン 2.0 以降を要求するアプリケーションでのみ利用できます。

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

各言語での定義

#include <windows.h>

// LINEADDRESSCAPS  (x64 228 / x86 228 バイト)
#pragma pack(push, 1)
typedef struct LINEADDRESSCAPS {
    DWORD dwTotalSize;
    DWORD dwNeededSize;
    DWORD dwUsedSize;
    DWORD dwLineDeviceID;
    DWORD dwAddressSize;
    DWORD dwAddressOffset;
    DWORD dwDevSpecificSize;
    DWORD dwDevSpecificOffset;
    DWORD dwAddressSharing;
    DWORD dwAddressStates;
    DWORD dwCallInfoStates;
    DWORD dwCallerIDFlags;
    DWORD dwCalledIDFlags;
    DWORD dwConnectedIDFlags;
    DWORD dwRedirectionIDFlags;
    DWORD dwRedirectingIDFlags;
    DWORD dwCallStates;
    DWORD dwDialToneModes;
    DWORD dwBusyModes;
    DWORD dwSpecialInfo;
    DWORD dwDisconnectModes;
    DWORD dwMaxNumActiveCalls;
    DWORD dwMaxNumOnHoldCalls;
    DWORD dwMaxNumOnHoldPendingCalls;
    DWORD dwMaxNumConference;
    DWORD dwMaxNumTransConf;
    DWORD dwAddrCapFlags;
    DWORD dwCallFeatures;
    DWORD dwRemoveFromConfCaps;
    DWORD dwRemoveFromConfState;
    DWORD dwTransferModes;
    DWORD dwParkModes;
    DWORD dwForwardModes;
    DWORD dwMaxForwardEntries;
    DWORD dwMaxSpecificEntries;
    DWORD dwMinFwdNumRings;
    DWORD dwMaxFwdNumRings;
    DWORD dwMaxCallCompletions;
    DWORD dwCallCompletionConds;
    DWORD dwCallCompletionModes;
    DWORD dwNumCompletionMessages;
    DWORD dwCompletionMsgTextEntrySize;
    DWORD dwCompletionMsgTextSize;
    DWORD dwCompletionMsgTextOffset;
    DWORD dwAddressFeatures;
    DWORD dwPredictiveAutoTransferStates;
    DWORD dwNumCallTreatments;
    DWORD dwCallTreatmentListSize;
    DWORD dwCallTreatmentListOffset;
    DWORD dwDeviceClassesSize;
    DWORD dwDeviceClassesOffset;
    DWORD dwMaxCallDataSize;
    DWORD dwCallFeatures2;
    DWORD dwMaxNoAnswerTimeout;
    DWORD dwConnectedModes;
    DWORD dwOfferingModes;
    DWORD dwAvailableMediaModes;
} LINEADDRESSCAPS;
#pragma pack(pop)
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINEADDRESSCAPS
{
    public uint dwTotalSize;
    public uint dwNeededSize;
    public uint dwUsedSize;
    public uint dwLineDeviceID;
    public uint dwAddressSize;
    public uint dwAddressOffset;
    public uint dwDevSpecificSize;
    public uint dwDevSpecificOffset;
    public uint dwAddressSharing;
    public uint dwAddressStates;
    public uint dwCallInfoStates;
    public uint dwCallerIDFlags;
    public uint dwCalledIDFlags;
    public uint dwConnectedIDFlags;
    public uint dwRedirectionIDFlags;
    public uint dwRedirectingIDFlags;
    public uint dwCallStates;
    public uint dwDialToneModes;
    public uint dwBusyModes;
    public uint dwSpecialInfo;
    public uint dwDisconnectModes;
    public uint dwMaxNumActiveCalls;
    public uint dwMaxNumOnHoldCalls;
    public uint dwMaxNumOnHoldPendingCalls;
    public uint dwMaxNumConference;
    public uint dwMaxNumTransConf;
    public uint dwAddrCapFlags;
    public uint dwCallFeatures;
    public uint dwRemoveFromConfCaps;
    public uint dwRemoveFromConfState;
    public uint dwTransferModes;
    public uint dwParkModes;
    public uint dwForwardModes;
    public uint dwMaxForwardEntries;
    public uint dwMaxSpecificEntries;
    public uint dwMinFwdNumRings;
    public uint dwMaxFwdNumRings;
    public uint dwMaxCallCompletions;
    public uint dwCallCompletionConds;
    public uint dwCallCompletionModes;
    public uint dwNumCompletionMessages;
    public uint dwCompletionMsgTextEntrySize;
    public uint dwCompletionMsgTextSize;
    public uint dwCompletionMsgTextOffset;
    public uint dwAddressFeatures;
    public uint dwPredictiveAutoTransferStates;
    public uint dwNumCallTreatments;
    public uint dwCallTreatmentListSize;
    public uint dwCallTreatmentListOffset;
    public uint dwDeviceClassesSize;
    public uint dwDeviceClassesOffset;
    public uint dwMaxCallDataSize;
    public uint dwCallFeatures2;
    public uint dwMaxNoAnswerTimeout;
    public uint dwConnectedModes;
    public uint dwOfferingModes;
    public uint dwAvailableMediaModes;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINEADDRESSCAPS
    Public dwTotalSize As UInteger
    Public dwNeededSize As UInteger
    Public dwUsedSize As UInteger
    Public dwLineDeviceID As UInteger
    Public dwAddressSize As UInteger
    Public dwAddressOffset As UInteger
    Public dwDevSpecificSize As UInteger
    Public dwDevSpecificOffset As UInteger
    Public dwAddressSharing As UInteger
    Public dwAddressStates As UInteger
    Public dwCallInfoStates As UInteger
    Public dwCallerIDFlags As UInteger
    Public dwCalledIDFlags As UInteger
    Public dwConnectedIDFlags As UInteger
    Public dwRedirectionIDFlags As UInteger
    Public dwRedirectingIDFlags As UInteger
    Public dwCallStates As UInteger
    Public dwDialToneModes As UInteger
    Public dwBusyModes As UInteger
    Public dwSpecialInfo As UInteger
    Public dwDisconnectModes As UInteger
    Public dwMaxNumActiveCalls As UInteger
    Public dwMaxNumOnHoldCalls As UInteger
    Public dwMaxNumOnHoldPendingCalls As UInteger
    Public dwMaxNumConference As UInteger
    Public dwMaxNumTransConf As UInteger
    Public dwAddrCapFlags As UInteger
    Public dwCallFeatures As UInteger
    Public dwRemoveFromConfCaps As UInteger
    Public dwRemoveFromConfState As UInteger
    Public dwTransferModes As UInteger
    Public dwParkModes As UInteger
    Public dwForwardModes As UInteger
    Public dwMaxForwardEntries As UInteger
    Public dwMaxSpecificEntries As UInteger
    Public dwMinFwdNumRings As UInteger
    Public dwMaxFwdNumRings As UInteger
    Public dwMaxCallCompletions As UInteger
    Public dwCallCompletionConds As UInteger
    Public dwCallCompletionModes As UInteger
    Public dwNumCompletionMessages As UInteger
    Public dwCompletionMsgTextEntrySize As UInteger
    Public dwCompletionMsgTextSize As UInteger
    Public dwCompletionMsgTextOffset As UInteger
    Public dwAddressFeatures As UInteger
    Public dwPredictiveAutoTransferStates As UInteger
    Public dwNumCallTreatments As UInteger
    Public dwCallTreatmentListSize As UInteger
    Public dwCallTreatmentListOffset As UInteger
    Public dwDeviceClassesSize As UInteger
    Public dwDeviceClassesOffset As UInteger
    Public dwMaxCallDataSize As UInteger
    Public dwCallFeatures2 As UInteger
    Public dwMaxNoAnswerTimeout As UInteger
    Public dwConnectedModes As UInteger
    Public dwOfferingModes As UInteger
    Public dwAvailableMediaModes As UInteger
End Structure
import ctypes
from ctypes import wintypes

class LINEADDRESSCAPS(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("dwTotalSize", wintypes.DWORD),
        ("dwNeededSize", wintypes.DWORD),
        ("dwUsedSize", wintypes.DWORD),
        ("dwLineDeviceID", wintypes.DWORD),
        ("dwAddressSize", wintypes.DWORD),
        ("dwAddressOffset", wintypes.DWORD),
        ("dwDevSpecificSize", wintypes.DWORD),
        ("dwDevSpecificOffset", wintypes.DWORD),
        ("dwAddressSharing", wintypes.DWORD),
        ("dwAddressStates", wintypes.DWORD),
        ("dwCallInfoStates", wintypes.DWORD),
        ("dwCallerIDFlags", wintypes.DWORD),
        ("dwCalledIDFlags", wintypes.DWORD),
        ("dwConnectedIDFlags", wintypes.DWORD),
        ("dwRedirectionIDFlags", wintypes.DWORD),
        ("dwRedirectingIDFlags", wintypes.DWORD),
        ("dwCallStates", wintypes.DWORD),
        ("dwDialToneModes", wintypes.DWORD),
        ("dwBusyModes", wintypes.DWORD),
        ("dwSpecialInfo", wintypes.DWORD),
        ("dwDisconnectModes", wintypes.DWORD),
        ("dwMaxNumActiveCalls", wintypes.DWORD),
        ("dwMaxNumOnHoldCalls", wintypes.DWORD),
        ("dwMaxNumOnHoldPendingCalls", wintypes.DWORD),
        ("dwMaxNumConference", wintypes.DWORD),
        ("dwMaxNumTransConf", wintypes.DWORD),
        ("dwAddrCapFlags", wintypes.DWORD),
        ("dwCallFeatures", wintypes.DWORD),
        ("dwRemoveFromConfCaps", wintypes.DWORD),
        ("dwRemoveFromConfState", wintypes.DWORD),
        ("dwTransferModes", wintypes.DWORD),
        ("dwParkModes", wintypes.DWORD),
        ("dwForwardModes", wintypes.DWORD),
        ("dwMaxForwardEntries", wintypes.DWORD),
        ("dwMaxSpecificEntries", wintypes.DWORD),
        ("dwMinFwdNumRings", wintypes.DWORD),
        ("dwMaxFwdNumRings", wintypes.DWORD),
        ("dwMaxCallCompletions", wintypes.DWORD),
        ("dwCallCompletionConds", wintypes.DWORD),
        ("dwCallCompletionModes", wintypes.DWORD),
        ("dwNumCompletionMessages", wintypes.DWORD),
        ("dwCompletionMsgTextEntrySize", wintypes.DWORD),
        ("dwCompletionMsgTextSize", wintypes.DWORD),
        ("dwCompletionMsgTextOffset", wintypes.DWORD),
        ("dwAddressFeatures", wintypes.DWORD),
        ("dwPredictiveAutoTransferStates", wintypes.DWORD),
        ("dwNumCallTreatments", wintypes.DWORD),
        ("dwCallTreatmentListSize", wintypes.DWORD),
        ("dwCallTreatmentListOffset", wintypes.DWORD),
        ("dwDeviceClassesSize", wintypes.DWORD),
        ("dwDeviceClassesOffset", wintypes.DWORD),
        ("dwMaxCallDataSize", wintypes.DWORD),
        ("dwCallFeatures2", wintypes.DWORD),
        ("dwMaxNoAnswerTimeout", wintypes.DWORD),
        ("dwConnectedModes", wintypes.DWORD),
        ("dwOfferingModes", wintypes.DWORD),
        ("dwAvailableMediaModes", wintypes.DWORD),
    ]
#[repr(C, packed(1))]
pub struct LINEADDRESSCAPS {
    pub dwTotalSize: u32,
    pub dwNeededSize: u32,
    pub dwUsedSize: u32,
    pub dwLineDeviceID: u32,
    pub dwAddressSize: u32,
    pub dwAddressOffset: u32,
    pub dwDevSpecificSize: u32,
    pub dwDevSpecificOffset: u32,
    pub dwAddressSharing: u32,
    pub dwAddressStates: u32,
    pub dwCallInfoStates: u32,
    pub dwCallerIDFlags: u32,
    pub dwCalledIDFlags: u32,
    pub dwConnectedIDFlags: u32,
    pub dwRedirectionIDFlags: u32,
    pub dwRedirectingIDFlags: u32,
    pub dwCallStates: u32,
    pub dwDialToneModes: u32,
    pub dwBusyModes: u32,
    pub dwSpecialInfo: u32,
    pub dwDisconnectModes: u32,
    pub dwMaxNumActiveCalls: u32,
    pub dwMaxNumOnHoldCalls: u32,
    pub dwMaxNumOnHoldPendingCalls: u32,
    pub dwMaxNumConference: u32,
    pub dwMaxNumTransConf: u32,
    pub dwAddrCapFlags: u32,
    pub dwCallFeatures: u32,
    pub dwRemoveFromConfCaps: u32,
    pub dwRemoveFromConfState: u32,
    pub dwTransferModes: u32,
    pub dwParkModes: u32,
    pub dwForwardModes: u32,
    pub dwMaxForwardEntries: u32,
    pub dwMaxSpecificEntries: u32,
    pub dwMinFwdNumRings: u32,
    pub dwMaxFwdNumRings: u32,
    pub dwMaxCallCompletions: u32,
    pub dwCallCompletionConds: u32,
    pub dwCallCompletionModes: u32,
    pub dwNumCompletionMessages: u32,
    pub dwCompletionMsgTextEntrySize: u32,
    pub dwCompletionMsgTextSize: u32,
    pub dwCompletionMsgTextOffset: u32,
    pub dwAddressFeatures: u32,
    pub dwPredictiveAutoTransferStates: u32,
    pub dwNumCallTreatments: u32,
    pub dwCallTreatmentListSize: u32,
    pub dwCallTreatmentListOffset: u32,
    pub dwDeviceClassesSize: u32,
    pub dwDeviceClassesOffset: u32,
    pub dwMaxCallDataSize: u32,
    pub dwCallFeatures2: u32,
    pub dwMaxNoAnswerTimeout: u32,
    pub dwConnectedModes: u32,
    pub dwOfferingModes: u32,
    pub dwAvailableMediaModes: u32,
}
import "golang.org/x/sys/windows"

type LINEADDRESSCAPS struct {
	dwTotalSize uint32
	dwNeededSize uint32
	dwUsedSize uint32
	dwLineDeviceID uint32
	dwAddressSize uint32
	dwAddressOffset uint32
	dwDevSpecificSize uint32
	dwDevSpecificOffset uint32
	dwAddressSharing uint32
	dwAddressStates uint32
	dwCallInfoStates uint32
	dwCallerIDFlags uint32
	dwCalledIDFlags uint32
	dwConnectedIDFlags uint32
	dwRedirectionIDFlags uint32
	dwRedirectingIDFlags uint32
	dwCallStates uint32
	dwDialToneModes uint32
	dwBusyModes uint32
	dwSpecialInfo uint32
	dwDisconnectModes uint32
	dwMaxNumActiveCalls uint32
	dwMaxNumOnHoldCalls uint32
	dwMaxNumOnHoldPendingCalls uint32
	dwMaxNumConference uint32
	dwMaxNumTransConf uint32
	dwAddrCapFlags uint32
	dwCallFeatures uint32
	dwRemoveFromConfCaps uint32
	dwRemoveFromConfState uint32
	dwTransferModes uint32
	dwParkModes uint32
	dwForwardModes uint32
	dwMaxForwardEntries uint32
	dwMaxSpecificEntries uint32
	dwMinFwdNumRings uint32
	dwMaxFwdNumRings uint32
	dwMaxCallCompletions uint32
	dwCallCompletionConds uint32
	dwCallCompletionModes uint32
	dwNumCompletionMessages uint32
	dwCompletionMsgTextEntrySize uint32
	dwCompletionMsgTextSize uint32
	dwCompletionMsgTextOffset uint32
	dwAddressFeatures uint32
	dwPredictiveAutoTransferStates uint32
	dwNumCallTreatments uint32
	dwCallTreatmentListSize uint32
	dwCallTreatmentListOffset uint32
	dwDeviceClassesSize uint32
	dwDeviceClassesOffset uint32
	dwMaxCallDataSize uint32
	dwCallFeatures2 uint32
	dwMaxNoAnswerTimeout uint32
	dwConnectedModes uint32
	dwOfferingModes uint32
	dwAvailableMediaModes uint32
}
type
  LINEADDRESSCAPS = packed record
    dwTotalSize: DWORD;
    dwNeededSize: DWORD;
    dwUsedSize: DWORD;
    dwLineDeviceID: DWORD;
    dwAddressSize: DWORD;
    dwAddressOffset: DWORD;
    dwDevSpecificSize: DWORD;
    dwDevSpecificOffset: DWORD;
    dwAddressSharing: DWORD;
    dwAddressStates: DWORD;
    dwCallInfoStates: DWORD;
    dwCallerIDFlags: DWORD;
    dwCalledIDFlags: DWORD;
    dwConnectedIDFlags: DWORD;
    dwRedirectionIDFlags: DWORD;
    dwRedirectingIDFlags: DWORD;
    dwCallStates: DWORD;
    dwDialToneModes: DWORD;
    dwBusyModes: DWORD;
    dwSpecialInfo: DWORD;
    dwDisconnectModes: DWORD;
    dwMaxNumActiveCalls: DWORD;
    dwMaxNumOnHoldCalls: DWORD;
    dwMaxNumOnHoldPendingCalls: DWORD;
    dwMaxNumConference: DWORD;
    dwMaxNumTransConf: DWORD;
    dwAddrCapFlags: DWORD;
    dwCallFeatures: DWORD;
    dwRemoveFromConfCaps: DWORD;
    dwRemoveFromConfState: DWORD;
    dwTransferModes: DWORD;
    dwParkModes: DWORD;
    dwForwardModes: DWORD;
    dwMaxForwardEntries: DWORD;
    dwMaxSpecificEntries: DWORD;
    dwMinFwdNumRings: DWORD;
    dwMaxFwdNumRings: DWORD;
    dwMaxCallCompletions: DWORD;
    dwCallCompletionConds: DWORD;
    dwCallCompletionModes: DWORD;
    dwNumCompletionMessages: DWORD;
    dwCompletionMsgTextEntrySize: DWORD;
    dwCompletionMsgTextSize: DWORD;
    dwCompletionMsgTextOffset: DWORD;
    dwAddressFeatures: DWORD;
    dwPredictiveAutoTransferStates: DWORD;
    dwNumCallTreatments: DWORD;
    dwCallTreatmentListSize: DWORD;
    dwCallTreatmentListOffset: DWORD;
    dwDeviceClassesSize: DWORD;
    dwDeviceClassesOffset: DWORD;
    dwMaxCallDataSize: DWORD;
    dwCallFeatures2: DWORD;
    dwMaxNoAnswerTimeout: DWORD;
    dwConnectedModes: DWORD;
    dwOfferingModes: DWORD;
    dwAvailableMediaModes: DWORD;
  end;
const LINEADDRESSCAPS = extern struct {
    dwTotalSize: u32,
    dwNeededSize: u32,
    dwUsedSize: u32,
    dwLineDeviceID: u32,
    dwAddressSize: u32,
    dwAddressOffset: u32,
    dwDevSpecificSize: u32,
    dwDevSpecificOffset: u32,
    dwAddressSharing: u32,
    dwAddressStates: u32,
    dwCallInfoStates: u32,
    dwCallerIDFlags: u32,
    dwCalledIDFlags: u32,
    dwConnectedIDFlags: u32,
    dwRedirectionIDFlags: u32,
    dwRedirectingIDFlags: u32,
    dwCallStates: u32,
    dwDialToneModes: u32,
    dwBusyModes: u32,
    dwSpecialInfo: u32,
    dwDisconnectModes: u32,
    dwMaxNumActiveCalls: u32,
    dwMaxNumOnHoldCalls: u32,
    dwMaxNumOnHoldPendingCalls: u32,
    dwMaxNumConference: u32,
    dwMaxNumTransConf: u32,
    dwAddrCapFlags: u32,
    dwCallFeatures: u32,
    dwRemoveFromConfCaps: u32,
    dwRemoveFromConfState: u32,
    dwTransferModes: u32,
    dwParkModes: u32,
    dwForwardModes: u32,
    dwMaxForwardEntries: u32,
    dwMaxSpecificEntries: u32,
    dwMinFwdNumRings: u32,
    dwMaxFwdNumRings: u32,
    dwMaxCallCompletions: u32,
    dwCallCompletionConds: u32,
    dwCallCompletionModes: u32,
    dwNumCompletionMessages: u32,
    dwCompletionMsgTextEntrySize: u32,
    dwCompletionMsgTextSize: u32,
    dwCompletionMsgTextOffset: u32,
    dwAddressFeatures: u32,
    dwPredictiveAutoTransferStates: u32,
    dwNumCallTreatments: u32,
    dwCallTreatmentListSize: u32,
    dwCallTreatmentListOffset: u32,
    dwDeviceClassesSize: u32,
    dwDeviceClassesOffset: u32,
    dwMaxCallDataSize: u32,
    dwCallFeatures2: u32,
    dwMaxNoAnswerTimeout: u32,
    dwConnectedModes: u32,
    dwOfferingModes: u32,
    dwAvailableMediaModes: u32,
};
type
  LINEADDRESSCAPS {.packed.} = object
    dwTotalSize: uint32
    dwNeededSize: uint32
    dwUsedSize: uint32
    dwLineDeviceID: uint32
    dwAddressSize: uint32
    dwAddressOffset: uint32
    dwDevSpecificSize: uint32
    dwDevSpecificOffset: uint32
    dwAddressSharing: uint32
    dwAddressStates: uint32
    dwCallInfoStates: uint32
    dwCallerIDFlags: uint32
    dwCalledIDFlags: uint32
    dwConnectedIDFlags: uint32
    dwRedirectionIDFlags: uint32
    dwRedirectingIDFlags: uint32
    dwCallStates: uint32
    dwDialToneModes: uint32
    dwBusyModes: uint32
    dwSpecialInfo: uint32
    dwDisconnectModes: uint32
    dwMaxNumActiveCalls: uint32
    dwMaxNumOnHoldCalls: uint32
    dwMaxNumOnHoldPendingCalls: uint32
    dwMaxNumConference: uint32
    dwMaxNumTransConf: uint32
    dwAddrCapFlags: uint32
    dwCallFeatures: uint32
    dwRemoveFromConfCaps: uint32
    dwRemoveFromConfState: uint32
    dwTransferModes: uint32
    dwParkModes: uint32
    dwForwardModes: uint32
    dwMaxForwardEntries: uint32
    dwMaxSpecificEntries: uint32
    dwMinFwdNumRings: uint32
    dwMaxFwdNumRings: uint32
    dwMaxCallCompletions: uint32
    dwCallCompletionConds: uint32
    dwCallCompletionModes: uint32
    dwNumCompletionMessages: uint32
    dwCompletionMsgTextEntrySize: uint32
    dwCompletionMsgTextSize: uint32
    dwCompletionMsgTextOffset: uint32
    dwAddressFeatures: uint32
    dwPredictiveAutoTransferStates: uint32
    dwNumCallTreatments: uint32
    dwCallTreatmentListSize: uint32
    dwCallTreatmentListOffset: uint32
    dwDeviceClassesSize: uint32
    dwDeviceClassesOffset: uint32
    dwMaxCallDataSize: uint32
    dwCallFeatures2: uint32
    dwMaxNoAnswerTimeout: uint32
    dwConnectedModes: uint32
    dwOfferingModes: uint32
    dwAvailableMediaModes: uint32
align(1)
struct LINEADDRESSCAPS
{
    uint dwTotalSize;
    uint dwNeededSize;
    uint dwUsedSize;
    uint dwLineDeviceID;
    uint dwAddressSize;
    uint dwAddressOffset;
    uint dwDevSpecificSize;
    uint dwDevSpecificOffset;
    uint dwAddressSharing;
    uint dwAddressStates;
    uint dwCallInfoStates;
    uint dwCallerIDFlags;
    uint dwCalledIDFlags;
    uint dwConnectedIDFlags;
    uint dwRedirectionIDFlags;
    uint dwRedirectingIDFlags;
    uint dwCallStates;
    uint dwDialToneModes;
    uint dwBusyModes;
    uint dwSpecialInfo;
    uint dwDisconnectModes;
    uint dwMaxNumActiveCalls;
    uint dwMaxNumOnHoldCalls;
    uint dwMaxNumOnHoldPendingCalls;
    uint dwMaxNumConference;
    uint dwMaxNumTransConf;
    uint dwAddrCapFlags;
    uint dwCallFeatures;
    uint dwRemoveFromConfCaps;
    uint dwRemoveFromConfState;
    uint dwTransferModes;
    uint dwParkModes;
    uint dwForwardModes;
    uint dwMaxForwardEntries;
    uint dwMaxSpecificEntries;
    uint dwMinFwdNumRings;
    uint dwMaxFwdNumRings;
    uint dwMaxCallCompletions;
    uint dwCallCompletionConds;
    uint dwCallCompletionModes;
    uint dwNumCompletionMessages;
    uint dwCompletionMsgTextEntrySize;
    uint dwCompletionMsgTextSize;
    uint dwCompletionMsgTextOffset;
    uint dwAddressFeatures;
    uint dwPredictiveAutoTransferStates;
    uint dwNumCallTreatments;
    uint dwCallTreatmentListSize;
    uint dwCallTreatmentListOffset;
    uint dwDeviceClassesSize;
    uint dwDeviceClassesOffset;
    uint dwMaxCallDataSize;
    uint dwCallFeatures2;
    uint dwMaxNoAnswerTimeout;
    uint dwConnectedModes;
    uint dwOfferingModes;
    uint dwAvailableMediaModes;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINEADDRESSCAPS サイズ: 228 バイト(x64)
dim st, 57    ; 4byte整数×57(構造体サイズ 228 / 4 切り上げ)
; dwTotalSize : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwNeededSize : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwUsedSize : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; dwLineDeviceID : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; dwAddressSize : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; dwAddressOffset : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; dwDevSpecificSize : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; dwDevSpecificOffset : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; dwAddressSharing : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; dwAddressStates : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; dwCallInfoStates : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; dwCallerIDFlags : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; dwCalledIDFlags : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; dwConnectedIDFlags : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; dwRedirectionIDFlags : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; dwRedirectingIDFlags : DWORD (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; dwCallStates : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; dwDialToneModes : DWORD (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; dwBusyModes : DWORD (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; dwSpecialInfo : DWORD (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; dwDisconnectModes : DWORD (+80, 4byte)  st.20 = 値  /  値 = st.20   (lpoke/lpeek も可)
; dwMaxNumActiveCalls : DWORD (+84, 4byte)  st.21 = 値  /  値 = st.21   (lpoke/lpeek も可)
; dwMaxNumOnHoldCalls : DWORD (+88, 4byte)  st.22 = 値  /  値 = st.22   (lpoke/lpeek も可)
; dwMaxNumOnHoldPendingCalls : DWORD (+92, 4byte)  st.23 = 値  /  値 = st.23   (lpoke/lpeek も可)
; dwMaxNumConference : DWORD (+96, 4byte)  st.24 = 値  /  値 = st.24   (lpoke/lpeek も可)
; dwMaxNumTransConf : DWORD (+100, 4byte)  st.25 = 値  /  値 = st.25   (lpoke/lpeek も可)
; dwAddrCapFlags : DWORD (+104, 4byte)  st.26 = 値  /  値 = st.26   (lpoke/lpeek も可)
; dwCallFeatures : DWORD (+108, 4byte)  st.27 = 値  /  値 = st.27   (lpoke/lpeek も可)
; dwRemoveFromConfCaps : DWORD (+112, 4byte)  st.28 = 値  /  値 = st.28   (lpoke/lpeek も可)
; dwRemoveFromConfState : DWORD (+116, 4byte)  st.29 = 値  /  値 = st.29   (lpoke/lpeek も可)
; dwTransferModes : DWORD (+120, 4byte)  st.30 = 値  /  値 = st.30   (lpoke/lpeek も可)
; dwParkModes : DWORD (+124, 4byte)  st.31 = 値  /  値 = st.31   (lpoke/lpeek も可)
; dwForwardModes : DWORD (+128, 4byte)  st.32 = 値  /  値 = st.32   (lpoke/lpeek も可)
; dwMaxForwardEntries : DWORD (+132, 4byte)  st.33 = 値  /  値 = st.33   (lpoke/lpeek も可)
; dwMaxSpecificEntries : DWORD (+136, 4byte)  st.34 = 値  /  値 = st.34   (lpoke/lpeek も可)
; dwMinFwdNumRings : DWORD (+140, 4byte)  st.35 = 値  /  値 = st.35   (lpoke/lpeek も可)
; dwMaxFwdNumRings : DWORD (+144, 4byte)  st.36 = 値  /  値 = st.36   (lpoke/lpeek も可)
; dwMaxCallCompletions : DWORD (+148, 4byte)  st.37 = 値  /  値 = st.37   (lpoke/lpeek も可)
; dwCallCompletionConds : DWORD (+152, 4byte)  st.38 = 値  /  値 = st.38   (lpoke/lpeek も可)
; dwCallCompletionModes : DWORD (+156, 4byte)  st.39 = 値  /  値 = st.39   (lpoke/lpeek も可)
; dwNumCompletionMessages : DWORD (+160, 4byte)  st.40 = 値  /  値 = st.40   (lpoke/lpeek も可)
; dwCompletionMsgTextEntrySize : DWORD (+164, 4byte)  st.41 = 値  /  値 = st.41   (lpoke/lpeek も可)
; dwCompletionMsgTextSize : DWORD (+168, 4byte)  st.42 = 値  /  値 = st.42   (lpoke/lpeek も可)
; dwCompletionMsgTextOffset : DWORD (+172, 4byte)  st.43 = 値  /  値 = st.43   (lpoke/lpeek も可)
; dwAddressFeatures : DWORD (+176, 4byte)  st.44 = 値  /  値 = st.44   (lpoke/lpeek も可)
; dwPredictiveAutoTransferStates : DWORD (+180, 4byte)  st.45 = 値  /  値 = st.45   (lpoke/lpeek も可)
; dwNumCallTreatments : DWORD (+184, 4byte)  st.46 = 値  /  値 = st.46   (lpoke/lpeek も可)
; dwCallTreatmentListSize : DWORD (+188, 4byte)  st.47 = 値  /  値 = st.47   (lpoke/lpeek も可)
; dwCallTreatmentListOffset : DWORD (+192, 4byte)  st.48 = 値  /  値 = st.48   (lpoke/lpeek も可)
; dwDeviceClassesSize : DWORD (+196, 4byte)  st.49 = 値  /  値 = st.49   (lpoke/lpeek も可)
; dwDeviceClassesOffset : DWORD (+200, 4byte)  st.50 = 値  /  値 = st.50   (lpoke/lpeek も可)
; dwMaxCallDataSize : DWORD (+204, 4byte)  st.51 = 値  /  値 = st.51   (lpoke/lpeek も可)
; dwCallFeatures2 : DWORD (+208, 4byte)  st.52 = 値  /  値 = st.52   (lpoke/lpeek も可)
; dwMaxNoAnswerTimeout : DWORD (+212, 4byte)  st.53 = 値  /  値 = st.53   (lpoke/lpeek も可)
; dwConnectedModes : DWORD (+216, 4byte)  st.54 = 値  /  値 = st.54   (lpoke/lpeek も可)
; dwOfferingModes : DWORD (+220, 4byte)  st.55 = 値  /  値 = st.55   (lpoke/lpeek も可)
; dwAvailableMediaModes : DWORD (+224, 4byte)  st.56 = 値  /  値 = st.56   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global LINEADDRESSCAPS, pack=1
    #field int dwTotalSize
    #field int dwNeededSize
    #field int dwUsedSize
    #field int dwLineDeviceID
    #field int dwAddressSize
    #field int dwAddressOffset
    #field int dwDevSpecificSize
    #field int dwDevSpecificOffset
    #field int dwAddressSharing
    #field int dwAddressStates
    #field int dwCallInfoStates
    #field int dwCallerIDFlags
    #field int dwCalledIDFlags
    #field int dwConnectedIDFlags
    #field int dwRedirectionIDFlags
    #field int dwRedirectingIDFlags
    #field int dwCallStates
    #field int dwDialToneModes
    #field int dwBusyModes
    #field int dwSpecialInfo
    #field int dwDisconnectModes
    #field int dwMaxNumActiveCalls
    #field int dwMaxNumOnHoldCalls
    #field int dwMaxNumOnHoldPendingCalls
    #field int dwMaxNumConference
    #field int dwMaxNumTransConf
    #field int dwAddrCapFlags
    #field int dwCallFeatures
    #field int dwRemoveFromConfCaps
    #field int dwRemoveFromConfState
    #field int dwTransferModes
    #field int dwParkModes
    #field int dwForwardModes
    #field int dwMaxForwardEntries
    #field int dwMaxSpecificEntries
    #field int dwMinFwdNumRings
    #field int dwMaxFwdNumRings
    #field int dwMaxCallCompletions
    #field int dwCallCompletionConds
    #field int dwCallCompletionModes
    #field int dwNumCompletionMessages
    #field int dwCompletionMsgTextEntrySize
    #field int dwCompletionMsgTextSize
    #field int dwCompletionMsgTextOffset
    #field int dwAddressFeatures
    #field int dwPredictiveAutoTransferStates
    #field int dwNumCallTreatments
    #field int dwCallTreatmentListSize
    #field int dwCallTreatmentListOffset
    #field int dwDeviceClassesSize
    #field int dwDeviceClassesOffset
    #field int dwMaxCallDataSize
    #field int dwCallFeatures2
    #field int dwMaxNoAnswerTimeout
    #field int dwConnectedModes
    #field int dwOfferingModes
    #field int dwAvailableMediaModes
#endstruct

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