ホーム › Devices.Tapi › LINEDEVCAPS
LINEDEVCAPS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| dwTotalSize | DWORD | 4 | +0 | +0 | この構造体に割り当てられた総サイズをバイトで表す。 |
| dwNeededSize | DWORD | 4 | +4 | +4 | 全情報の格納に必要なサイズをバイトで表す。 |
| dwUsedSize | DWORD | 4 | +8 | +8 | 実際に使用されたサイズをバイトで表す。 |
| dwProviderInfoSize | DWORD | 4 | +12 | +12 | プロバイダ情報文字列のサイズをバイトで表す。 |
| dwProviderInfoOffset | DWORD | 4 | +16 | +16 | プロバイダ情報文字列までのオフセット。 |
| dwSwitchInfoSize | DWORD | 4 | +20 | +20 | スイッチ情報文字列のサイズをバイトで表す。 |
| dwSwitchInfoOffset | DWORD | 4 | +24 | +24 | スイッチ情報文字列までのオフセット。 |
| dwPermanentLineID | DWORD | 4 | +28 | +28 | 回線デバイスを識別する永続IDを表す。 |
| dwLineNameSize | DWORD | 4 | +32 | +32 | 回線名文字列のサイズをバイトで表す。 |
| dwLineNameOffset | DWORD | 4 | +36 | +36 | 回線名文字列までのオフセットをバイトで表す。 |
| dwStringFormat | DWORD | 4 | +40 | +40 | 文字列フィールドのキャラクタ形式(ASCII/Unicode等)を示す。 |
| dwAddressModes | DWORD | 4 | +44 | +44 | サポートされるアドレス指定モードを示すフラグ。 |
| dwNumAddresses | DWORD | 4 | +48 | +48 | この回線上のアドレス数を表す。 |
| dwBearerModes | DWORD | 4 | +52 | +52 | サポートされるベアラモードを示すフラグ。 |
| dwMaxRate | DWORD | 4 | +56 | +56 | サポートされる最大データ速度をbpsで表す。 |
| dwMediaModes | DWORD | 4 | +60 | +60 | サポートされるメディアモードを示すフラグ。 |
| dwGenerateToneModes | DWORD | 4 | +64 | +64 | 生成可能なトーンの種別を示すフラグ。 |
| dwGenerateToneMaxNumFreq | DWORD | 4 | +68 | +68 | トーン生成で同時指定できる最大周波数数を表す。 |
| dwGenerateDigitModes | DWORD | 4 | +72 | +72 | 生成可能なディジット方式を示すフラグ。 |
| dwMonitorToneMaxNumFreq | DWORD | 4 | +76 | +76 | トーン監視で1トーンに指定できる最大周波数数を表す。 |
| dwMonitorToneMaxNumEntries | DWORD | 4 | +80 | +80 | 同時に監視できるトーンエントリの最大数を表す。 |
| dwMonitorDigitModes | DWORD | 4 | +84 | +84 | 監視可能なディジット方式を示すフラグ。 |
| dwGatherDigitsMinTimeout | DWORD | 4 | +88 | +88 | ディジット収集の最小タイムアウトをミリ秒で表す。 |
| dwGatherDigitsMaxTimeout | DWORD | 4 | +92 | +92 | ディジット収集の最大タイムアウトをミリ秒で表す。 |
| dwMedCtlDigitMaxListSize | DWORD | 4 | +96 | +96 | メディア制御ディジットリストの最大サイズをバイトで表す。 |
| dwMedCtlMediaMaxListSize | DWORD | 4 | +100 | +100 | メディア制御メディアリストの最大サイズをバイトで表す。 |
| dwMedCtlToneMaxListSize | DWORD | 4 | +104 | +104 | メディア制御トーンリストの最大サイズをバイトで表す。 |
| dwMedCtlCallStateMaxListSize | DWORD | 4 | +108 | +108 | メディア制御呼状態リストの最大サイズをバイトで表す。 |
| dwDevCapFlags | DWORD | 4 | +112 | +112 | 回線デバイスの能力を示すフラグの組み合わせ。 |
| dwMaxNumActiveCalls | DWORD | 4 | +116 | +116 | 同時にアクティブにできる最大呼数を表す。 |
| dwAnswerMode | DWORD | 4 | +120 | +120 | 他の呼が存在する際の応答時の動作モードを示す値。 |
| dwRingModes | DWORD | 4 | +124 | +124 | 区別可能な呼出パターン(リングモード)の数を表す。 |
| dwLineStates | DWORD | 4 | +128 | +128 | 通知され得る回線状態を示すフラグの組み合わせ。 |
| dwUUIAcceptSize | DWORD | 4 | +132 | +132 | 応答受理時に送れるUUIの最大サイズをバイトで表す。 |
| dwUUIAnswerSize | DWORD | 4 | +136 | +136 | 応答時に送れるUUIの最大サイズをバイトで表す。 |
| dwUUIMakeCallSize | DWORD | 4 | +140 | +140 | 発信時に送れるUUIの最大サイズをバイトで表す。 |
| dwUUIDropSize | DWORD | 4 | +144 | +144 | 切断時に送れるUUIの最大サイズをバイトで表す。 |
| dwUUISendUserUserInfoSize | DWORD | 4 | +148 | +148 | 明示送信できるUUIの最大サイズをバイトで表す。 |
| dwUUICallInfoSize | DWORD | 4 | +152 | +152 | 呼情報に保持できるUUIの最大サイズをバイトで表す。 |
| MinDialParams | LINEDIALPARAMS | 16 | +156 | +156 | サポートされるダイヤルパラメータの最小値。 |
| MaxDialParams | LINEDIALPARAMS | 16 | +172 | +172 | サポートされるダイヤルパラメータの最大値。 |
| DefaultDialParams | LINEDIALPARAMS | 16 | +188 | +188 | 既定のダイヤルパラメータ値。 |
| dwNumTerminals | DWORD | 4 | +204 | +204 | この回線に接続可能な端末の数を表す。 |
| dwTerminalCapsSize | DWORD | 4 | +208 | +208 | 端末能力情報のサイズをバイトで表す。 |
| dwTerminalCapsOffset | DWORD | 4 | +212 | +212 | 端末能力情報までのオフセットをバイトで表す。 |
| dwTerminalTextEntrySize | DWORD | 4 | +216 | +216 | 端末テキスト1エントリのサイズをバイトで表す。 |
| dwTerminalTextSize | DWORD | 4 | +220 | +220 | 端末テキスト全体のサイズをバイトで表す。 |
| dwTerminalTextOffset | DWORD | 4 | +224 | +224 | 端末テキストまでのオフセットをバイトで表す。 |
| dwDevSpecificSize | DWORD | 4 | +228 | +228 | デバイス固有情報のサイズをバイトで表す。 |
| dwDevSpecificOffset | DWORD | 4 | +232 | +232 | デバイス固有情報までのオフセットをバイトで表す。 |
| dwLineFeatures | DWORD | 4 | +236 | +236 | 回線レベルで利用可能な機能を示すフラグ。 |
| dwSettableDevStatus | DWORD | 4 | +240 | +240 | 設定変更可能なデバイス状態項目を示すフラグ。 |
| dwDeviceClassesSize | DWORD | 4 | +244 | +244 | デバイスクラス名リストのサイズをバイトで表す。 |
| dwDeviceClassesOffset | DWORD | 4 | +248 | +248 | デバイスクラス名リストまでのオフセット。 |
| PermanentLineGuid | GUID | 16 | +252 | +252 | 回線デバイスを一意に識別する永続GUID。 |
各言語での定義
#include <windows.h>
// LINEDIALPARAMS (x64 16 / x86 16 バイト)
#pragma pack(push, 1)
typedef struct LINEDIALPARAMS {
DWORD dwDialPause;
DWORD dwDialSpeed;
DWORD dwDigitDuration;
DWORD dwWaitForDialtone;
} LINEDIALPARAMS;
#pragma pack(pop)
// LINEDEVCAPS (x64 268 / x86 268 バイト)
#pragma pack(push, 1)
typedef struct LINEDEVCAPS {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwProviderInfoSize;
DWORD dwProviderInfoOffset;
DWORD dwSwitchInfoSize;
DWORD dwSwitchInfoOffset;
DWORD dwPermanentLineID;
DWORD dwLineNameSize;
DWORD dwLineNameOffset;
DWORD dwStringFormat;
DWORD dwAddressModes;
DWORD dwNumAddresses;
DWORD dwBearerModes;
DWORD dwMaxRate;
DWORD dwMediaModes;
DWORD dwGenerateToneModes;
DWORD dwGenerateToneMaxNumFreq;
DWORD dwGenerateDigitModes;
DWORD dwMonitorToneMaxNumFreq;
DWORD dwMonitorToneMaxNumEntries;
DWORD dwMonitorDigitModes;
DWORD dwGatherDigitsMinTimeout;
DWORD dwGatherDigitsMaxTimeout;
DWORD dwMedCtlDigitMaxListSize;
DWORD dwMedCtlMediaMaxListSize;
DWORD dwMedCtlToneMaxListSize;
DWORD dwMedCtlCallStateMaxListSize;
DWORD dwDevCapFlags;
DWORD dwMaxNumActiveCalls;
DWORD dwAnswerMode;
DWORD dwRingModes;
DWORD dwLineStates;
DWORD dwUUIAcceptSize;
DWORD dwUUIAnswerSize;
DWORD dwUUIMakeCallSize;
DWORD dwUUIDropSize;
DWORD dwUUISendUserUserInfoSize;
DWORD dwUUICallInfoSize;
LINEDIALPARAMS MinDialParams;
LINEDIALPARAMS MaxDialParams;
LINEDIALPARAMS DefaultDialParams;
DWORD dwNumTerminals;
DWORD dwTerminalCapsSize;
DWORD dwTerminalCapsOffset;
DWORD dwTerminalTextEntrySize;
DWORD dwTerminalTextSize;
DWORD dwTerminalTextOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
DWORD dwLineFeatures;
DWORD dwSettableDevStatus;
DWORD dwDeviceClassesSize;
DWORD dwDeviceClassesOffset;
GUID PermanentLineGuid;
} LINEDEVCAPS;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINEDIALPARAMS
{
public uint dwDialPause;
public uint dwDialSpeed;
public uint dwDigitDuration;
public uint dwWaitForDialtone;
}
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINEDEVCAPS
{
public uint dwTotalSize;
public uint dwNeededSize;
public uint dwUsedSize;
public uint dwProviderInfoSize;
public uint dwProviderInfoOffset;
public uint dwSwitchInfoSize;
public uint dwSwitchInfoOffset;
public uint dwPermanentLineID;
public uint dwLineNameSize;
public uint dwLineNameOffset;
public uint dwStringFormat;
public uint dwAddressModes;
public uint dwNumAddresses;
public uint dwBearerModes;
public uint dwMaxRate;
public uint dwMediaModes;
public uint dwGenerateToneModes;
public uint dwGenerateToneMaxNumFreq;
public uint dwGenerateDigitModes;
public uint dwMonitorToneMaxNumFreq;
public uint dwMonitorToneMaxNumEntries;
public uint dwMonitorDigitModes;
public uint dwGatherDigitsMinTimeout;
public uint dwGatherDigitsMaxTimeout;
public uint dwMedCtlDigitMaxListSize;
public uint dwMedCtlMediaMaxListSize;
public uint dwMedCtlToneMaxListSize;
public uint dwMedCtlCallStateMaxListSize;
public uint dwDevCapFlags;
public uint dwMaxNumActiveCalls;
public uint dwAnswerMode;
public uint dwRingModes;
public uint dwLineStates;
public uint dwUUIAcceptSize;
public uint dwUUIAnswerSize;
public uint dwUUIMakeCallSize;
public uint dwUUIDropSize;
public uint dwUUISendUserUserInfoSize;
public uint dwUUICallInfoSize;
public LINEDIALPARAMS MinDialParams;
public LINEDIALPARAMS MaxDialParams;
public LINEDIALPARAMS DefaultDialParams;
public uint dwNumTerminals;
public uint dwTerminalCapsSize;
public uint dwTerminalCapsOffset;
public uint dwTerminalTextEntrySize;
public uint dwTerminalTextSize;
public uint dwTerminalTextOffset;
public uint dwDevSpecificSize;
public uint dwDevSpecificOffset;
public uint dwLineFeatures;
public uint dwSettableDevStatus;
public uint dwDeviceClassesSize;
public uint dwDeviceClassesOffset;
public Guid PermanentLineGuid;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINEDIALPARAMS
Public dwDialPause As UInteger
Public dwDialSpeed As UInteger
Public dwDigitDuration As UInteger
Public dwWaitForDialtone As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINEDEVCAPS
Public dwTotalSize As UInteger
Public dwNeededSize As UInteger
Public dwUsedSize As UInteger
Public dwProviderInfoSize As UInteger
Public dwProviderInfoOffset As UInteger
Public dwSwitchInfoSize As UInteger
Public dwSwitchInfoOffset As UInteger
Public dwPermanentLineID As UInteger
Public dwLineNameSize As UInteger
Public dwLineNameOffset As UInteger
Public dwStringFormat As UInteger
Public dwAddressModes As UInteger
Public dwNumAddresses As UInteger
Public dwBearerModes As UInteger
Public dwMaxRate As UInteger
Public dwMediaModes As UInteger
Public dwGenerateToneModes As UInteger
Public dwGenerateToneMaxNumFreq As UInteger
Public dwGenerateDigitModes As UInteger
Public dwMonitorToneMaxNumFreq As UInteger
Public dwMonitorToneMaxNumEntries As UInteger
Public dwMonitorDigitModes As UInteger
Public dwGatherDigitsMinTimeout As UInteger
Public dwGatherDigitsMaxTimeout As UInteger
Public dwMedCtlDigitMaxListSize As UInteger
Public dwMedCtlMediaMaxListSize As UInteger
Public dwMedCtlToneMaxListSize As UInteger
Public dwMedCtlCallStateMaxListSize As UInteger
Public dwDevCapFlags As UInteger
Public dwMaxNumActiveCalls As UInteger
Public dwAnswerMode As UInteger
Public dwRingModes As UInteger
Public dwLineStates As UInteger
Public dwUUIAcceptSize As UInteger
Public dwUUIAnswerSize As UInteger
Public dwUUIMakeCallSize As UInteger
Public dwUUIDropSize As UInteger
Public dwUUISendUserUserInfoSize As UInteger
Public dwUUICallInfoSize As UInteger
Public MinDialParams As LINEDIALPARAMS
Public MaxDialParams As LINEDIALPARAMS
Public DefaultDialParams As LINEDIALPARAMS
Public dwNumTerminals As UInteger
Public dwTerminalCapsSize As UInteger
Public dwTerminalCapsOffset As UInteger
Public dwTerminalTextEntrySize As UInteger
Public dwTerminalTextSize As UInteger
Public dwTerminalTextOffset As UInteger
Public dwDevSpecificSize As UInteger
Public dwDevSpecificOffset As UInteger
Public dwLineFeatures As UInteger
Public dwSettableDevStatus As UInteger
Public dwDeviceClassesSize As UInteger
Public dwDeviceClassesOffset As UInteger
Public PermanentLineGuid As Guid
End Structureimport ctypes
from ctypes import wintypes
class LINEDIALPARAMS(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwDialPause", wintypes.DWORD),
("dwDialSpeed", wintypes.DWORD),
("dwDigitDuration", wintypes.DWORD),
("dwWaitForDialtone", wintypes.DWORD),
]
class LINEDEVCAPS(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwNeededSize", wintypes.DWORD),
("dwUsedSize", wintypes.DWORD),
("dwProviderInfoSize", wintypes.DWORD),
("dwProviderInfoOffset", wintypes.DWORD),
("dwSwitchInfoSize", wintypes.DWORD),
("dwSwitchInfoOffset", wintypes.DWORD),
("dwPermanentLineID", wintypes.DWORD),
("dwLineNameSize", wintypes.DWORD),
("dwLineNameOffset", wintypes.DWORD),
("dwStringFormat", wintypes.DWORD),
("dwAddressModes", wintypes.DWORD),
("dwNumAddresses", wintypes.DWORD),
("dwBearerModes", wintypes.DWORD),
("dwMaxRate", wintypes.DWORD),
("dwMediaModes", wintypes.DWORD),
("dwGenerateToneModes", wintypes.DWORD),
("dwGenerateToneMaxNumFreq", wintypes.DWORD),
("dwGenerateDigitModes", wintypes.DWORD),
("dwMonitorToneMaxNumFreq", wintypes.DWORD),
("dwMonitorToneMaxNumEntries", wintypes.DWORD),
("dwMonitorDigitModes", wintypes.DWORD),
("dwGatherDigitsMinTimeout", wintypes.DWORD),
("dwGatherDigitsMaxTimeout", wintypes.DWORD),
("dwMedCtlDigitMaxListSize", wintypes.DWORD),
("dwMedCtlMediaMaxListSize", wintypes.DWORD),
("dwMedCtlToneMaxListSize", wintypes.DWORD),
("dwMedCtlCallStateMaxListSize", wintypes.DWORD),
("dwDevCapFlags", wintypes.DWORD),
("dwMaxNumActiveCalls", wintypes.DWORD),
("dwAnswerMode", wintypes.DWORD),
("dwRingModes", wintypes.DWORD),
("dwLineStates", wintypes.DWORD),
("dwUUIAcceptSize", wintypes.DWORD),
("dwUUIAnswerSize", wintypes.DWORD),
("dwUUIMakeCallSize", wintypes.DWORD),
("dwUUIDropSize", wintypes.DWORD),
("dwUUISendUserUserInfoSize", wintypes.DWORD),
("dwUUICallInfoSize", wintypes.DWORD),
("MinDialParams", LINEDIALPARAMS),
("MaxDialParams", LINEDIALPARAMS),
("DefaultDialParams", LINEDIALPARAMS),
("dwNumTerminals", wintypes.DWORD),
("dwTerminalCapsSize", wintypes.DWORD),
("dwTerminalCapsOffset", wintypes.DWORD),
("dwTerminalTextEntrySize", wintypes.DWORD),
("dwTerminalTextSize", wintypes.DWORD),
("dwTerminalTextOffset", wintypes.DWORD),
("dwDevSpecificSize", wintypes.DWORD),
("dwDevSpecificOffset", wintypes.DWORD),
("dwLineFeatures", wintypes.DWORD),
("dwSettableDevStatus", wintypes.DWORD),
("dwDeviceClassesSize", wintypes.DWORD),
("dwDeviceClassesOffset", wintypes.DWORD),
("PermanentLineGuid", GUID),
]#[repr(C, packed(1))]
pub struct LINEDIALPARAMS {
pub dwDialPause: u32,
pub dwDialSpeed: u32,
pub dwDigitDuration: u32,
pub dwWaitForDialtone: u32,
}
#[repr(C, packed(1))]
pub struct LINEDEVCAPS {
pub dwTotalSize: u32,
pub dwNeededSize: u32,
pub dwUsedSize: u32,
pub dwProviderInfoSize: u32,
pub dwProviderInfoOffset: u32,
pub dwSwitchInfoSize: u32,
pub dwSwitchInfoOffset: u32,
pub dwPermanentLineID: u32,
pub dwLineNameSize: u32,
pub dwLineNameOffset: u32,
pub dwStringFormat: u32,
pub dwAddressModes: u32,
pub dwNumAddresses: u32,
pub dwBearerModes: u32,
pub dwMaxRate: u32,
pub dwMediaModes: u32,
pub dwGenerateToneModes: u32,
pub dwGenerateToneMaxNumFreq: u32,
pub dwGenerateDigitModes: u32,
pub dwMonitorToneMaxNumFreq: u32,
pub dwMonitorToneMaxNumEntries: u32,
pub dwMonitorDigitModes: u32,
pub dwGatherDigitsMinTimeout: u32,
pub dwGatherDigitsMaxTimeout: u32,
pub dwMedCtlDigitMaxListSize: u32,
pub dwMedCtlMediaMaxListSize: u32,
pub dwMedCtlToneMaxListSize: u32,
pub dwMedCtlCallStateMaxListSize: u32,
pub dwDevCapFlags: u32,
pub dwMaxNumActiveCalls: u32,
pub dwAnswerMode: u32,
pub dwRingModes: u32,
pub dwLineStates: u32,
pub dwUUIAcceptSize: u32,
pub dwUUIAnswerSize: u32,
pub dwUUIMakeCallSize: u32,
pub dwUUIDropSize: u32,
pub dwUUISendUserUserInfoSize: u32,
pub dwUUICallInfoSize: u32,
pub MinDialParams: LINEDIALPARAMS,
pub MaxDialParams: LINEDIALPARAMS,
pub DefaultDialParams: LINEDIALPARAMS,
pub dwNumTerminals: u32,
pub dwTerminalCapsSize: u32,
pub dwTerminalCapsOffset: u32,
pub dwTerminalTextEntrySize: u32,
pub dwTerminalTextSize: u32,
pub dwTerminalTextOffset: u32,
pub dwDevSpecificSize: u32,
pub dwDevSpecificOffset: u32,
pub dwLineFeatures: u32,
pub dwSettableDevStatus: u32,
pub dwDeviceClassesSize: u32,
pub dwDeviceClassesOffset: u32,
pub PermanentLineGuid: GUID,
}import "golang.org/x/sys/windows"
type LINEDIALPARAMS struct {
dwDialPause uint32
dwDialSpeed uint32
dwDigitDuration uint32
dwWaitForDialtone uint32
}
type LINEDEVCAPS struct {
dwTotalSize uint32
dwNeededSize uint32
dwUsedSize uint32
dwProviderInfoSize uint32
dwProviderInfoOffset uint32
dwSwitchInfoSize uint32
dwSwitchInfoOffset uint32
dwPermanentLineID uint32
dwLineNameSize uint32
dwLineNameOffset uint32
dwStringFormat uint32
dwAddressModes uint32
dwNumAddresses uint32
dwBearerModes uint32
dwMaxRate uint32
dwMediaModes uint32
dwGenerateToneModes uint32
dwGenerateToneMaxNumFreq uint32
dwGenerateDigitModes uint32
dwMonitorToneMaxNumFreq uint32
dwMonitorToneMaxNumEntries uint32
dwMonitorDigitModes uint32
dwGatherDigitsMinTimeout uint32
dwGatherDigitsMaxTimeout uint32
dwMedCtlDigitMaxListSize uint32
dwMedCtlMediaMaxListSize uint32
dwMedCtlToneMaxListSize uint32
dwMedCtlCallStateMaxListSize uint32
dwDevCapFlags uint32
dwMaxNumActiveCalls uint32
dwAnswerMode uint32
dwRingModes uint32
dwLineStates uint32
dwUUIAcceptSize uint32
dwUUIAnswerSize uint32
dwUUIMakeCallSize uint32
dwUUIDropSize uint32
dwUUISendUserUserInfoSize uint32
dwUUICallInfoSize uint32
MinDialParams LINEDIALPARAMS
MaxDialParams LINEDIALPARAMS
DefaultDialParams LINEDIALPARAMS
dwNumTerminals uint32
dwTerminalCapsSize uint32
dwTerminalCapsOffset uint32
dwTerminalTextEntrySize uint32
dwTerminalTextSize uint32
dwTerminalTextOffset uint32
dwDevSpecificSize uint32
dwDevSpecificOffset uint32
dwLineFeatures uint32
dwSettableDevStatus uint32
dwDeviceClassesSize uint32
dwDeviceClassesOffset uint32
PermanentLineGuid windows.GUID
}type
LINEDIALPARAMS = packed record
dwDialPause: DWORD;
dwDialSpeed: DWORD;
dwDigitDuration: DWORD;
dwWaitForDialtone: DWORD;
end;
LINEDEVCAPS = packed record
dwTotalSize: DWORD;
dwNeededSize: DWORD;
dwUsedSize: DWORD;
dwProviderInfoSize: DWORD;
dwProviderInfoOffset: DWORD;
dwSwitchInfoSize: DWORD;
dwSwitchInfoOffset: DWORD;
dwPermanentLineID: DWORD;
dwLineNameSize: DWORD;
dwLineNameOffset: DWORD;
dwStringFormat: DWORD;
dwAddressModes: DWORD;
dwNumAddresses: DWORD;
dwBearerModes: DWORD;
dwMaxRate: DWORD;
dwMediaModes: DWORD;
dwGenerateToneModes: DWORD;
dwGenerateToneMaxNumFreq: DWORD;
dwGenerateDigitModes: DWORD;
dwMonitorToneMaxNumFreq: DWORD;
dwMonitorToneMaxNumEntries: DWORD;
dwMonitorDigitModes: DWORD;
dwGatherDigitsMinTimeout: DWORD;
dwGatherDigitsMaxTimeout: DWORD;
dwMedCtlDigitMaxListSize: DWORD;
dwMedCtlMediaMaxListSize: DWORD;
dwMedCtlToneMaxListSize: DWORD;
dwMedCtlCallStateMaxListSize: DWORD;
dwDevCapFlags: DWORD;
dwMaxNumActiveCalls: DWORD;
dwAnswerMode: DWORD;
dwRingModes: DWORD;
dwLineStates: DWORD;
dwUUIAcceptSize: DWORD;
dwUUIAnswerSize: DWORD;
dwUUIMakeCallSize: DWORD;
dwUUIDropSize: DWORD;
dwUUISendUserUserInfoSize: DWORD;
dwUUICallInfoSize: DWORD;
MinDialParams: LINEDIALPARAMS;
MaxDialParams: LINEDIALPARAMS;
DefaultDialParams: LINEDIALPARAMS;
dwNumTerminals: DWORD;
dwTerminalCapsSize: DWORD;
dwTerminalCapsOffset: DWORD;
dwTerminalTextEntrySize: DWORD;
dwTerminalTextSize: DWORD;
dwTerminalTextOffset: DWORD;
dwDevSpecificSize: DWORD;
dwDevSpecificOffset: DWORD;
dwLineFeatures: DWORD;
dwSettableDevStatus: DWORD;
dwDeviceClassesSize: DWORD;
dwDeviceClassesOffset: DWORD;
PermanentLineGuid: TGUID;
end;const LINEDIALPARAMS = extern struct {
dwDialPause: u32,
dwDialSpeed: u32,
dwDigitDuration: u32,
dwWaitForDialtone: u32,
};
const LINEDEVCAPS = extern struct {
dwTotalSize: u32,
dwNeededSize: u32,
dwUsedSize: u32,
dwProviderInfoSize: u32,
dwProviderInfoOffset: u32,
dwSwitchInfoSize: u32,
dwSwitchInfoOffset: u32,
dwPermanentLineID: u32,
dwLineNameSize: u32,
dwLineNameOffset: u32,
dwStringFormat: u32,
dwAddressModes: u32,
dwNumAddresses: u32,
dwBearerModes: u32,
dwMaxRate: u32,
dwMediaModes: u32,
dwGenerateToneModes: u32,
dwGenerateToneMaxNumFreq: u32,
dwGenerateDigitModes: u32,
dwMonitorToneMaxNumFreq: u32,
dwMonitorToneMaxNumEntries: u32,
dwMonitorDigitModes: u32,
dwGatherDigitsMinTimeout: u32,
dwGatherDigitsMaxTimeout: u32,
dwMedCtlDigitMaxListSize: u32,
dwMedCtlMediaMaxListSize: u32,
dwMedCtlToneMaxListSize: u32,
dwMedCtlCallStateMaxListSize: u32,
dwDevCapFlags: u32,
dwMaxNumActiveCalls: u32,
dwAnswerMode: u32,
dwRingModes: u32,
dwLineStates: u32,
dwUUIAcceptSize: u32,
dwUUIAnswerSize: u32,
dwUUIMakeCallSize: u32,
dwUUIDropSize: u32,
dwUUISendUserUserInfoSize: u32,
dwUUICallInfoSize: u32,
MinDialParams: LINEDIALPARAMS,
MaxDialParams: LINEDIALPARAMS,
DefaultDialParams: LINEDIALPARAMS,
dwNumTerminals: u32,
dwTerminalCapsSize: u32,
dwTerminalCapsOffset: u32,
dwTerminalTextEntrySize: u32,
dwTerminalTextSize: u32,
dwTerminalTextOffset: u32,
dwDevSpecificSize: u32,
dwDevSpecificOffset: u32,
dwLineFeatures: u32,
dwSettableDevStatus: u32,
dwDeviceClassesSize: u32,
dwDeviceClassesOffset: u32,
PermanentLineGuid: GUID,
};type
LINEDIALPARAMS {.packed.} = object
dwDialPause: uint32
dwDialSpeed: uint32
dwDigitDuration: uint32
dwWaitForDialtone: uint32
LINEDEVCAPS {.packed.} = object
dwTotalSize: uint32
dwNeededSize: uint32
dwUsedSize: uint32
dwProviderInfoSize: uint32
dwProviderInfoOffset: uint32
dwSwitchInfoSize: uint32
dwSwitchInfoOffset: uint32
dwPermanentLineID: uint32
dwLineNameSize: uint32
dwLineNameOffset: uint32
dwStringFormat: uint32
dwAddressModes: uint32
dwNumAddresses: uint32
dwBearerModes: uint32
dwMaxRate: uint32
dwMediaModes: uint32
dwGenerateToneModes: uint32
dwGenerateToneMaxNumFreq: uint32
dwGenerateDigitModes: uint32
dwMonitorToneMaxNumFreq: uint32
dwMonitorToneMaxNumEntries: uint32
dwMonitorDigitModes: uint32
dwGatherDigitsMinTimeout: uint32
dwGatherDigitsMaxTimeout: uint32
dwMedCtlDigitMaxListSize: uint32
dwMedCtlMediaMaxListSize: uint32
dwMedCtlToneMaxListSize: uint32
dwMedCtlCallStateMaxListSize: uint32
dwDevCapFlags: uint32
dwMaxNumActiveCalls: uint32
dwAnswerMode: uint32
dwRingModes: uint32
dwLineStates: uint32
dwUUIAcceptSize: uint32
dwUUIAnswerSize: uint32
dwUUIMakeCallSize: uint32
dwUUIDropSize: uint32
dwUUISendUserUserInfoSize: uint32
dwUUICallInfoSize: uint32
MinDialParams: LINEDIALPARAMS
MaxDialParams: LINEDIALPARAMS
DefaultDialParams: LINEDIALPARAMS
dwNumTerminals: uint32
dwTerminalCapsSize: uint32
dwTerminalCapsOffset: uint32
dwTerminalTextEntrySize: uint32
dwTerminalTextSize: uint32
dwTerminalTextOffset: uint32
dwDevSpecificSize: uint32
dwDevSpecificOffset: uint32
dwLineFeatures: uint32
dwSettableDevStatus: uint32
dwDeviceClassesSize: uint32
dwDeviceClassesOffset: uint32
PermanentLineGuid: GUIDalign(1)
struct LINEDIALPARAMS
{
uint dwDialPause;
uint dwDialSpeed;
uint dwDigitDuration;
uint dwWaitForDialtone;
}
align(1)
struct LINEDEVCAPS
{
uint dwTotalSize;
uint dwNeededSize;
uint dwUsedSize;
uint dwProviderInfoSize;
uint dwProviderInfoOffset;
uint dwSwitchInfoSize;
uint dwSwitchInfoOffset;
uint dwPermanentLineID;
uint dwLineNameSize;
uint dwLineNameOffset;
uint dwStringFormat;
uint dwAddressModes;
uint dwNumAddresses;
uint dwBearerModes;
uint dwMaxRate;
uint dwMediaModes;
uint dwGenerateToneModes;
uint dwGenerateToneMaxNumFreq;
uint dwGenerateDigitModes;
uint dwMonitorToneMaxNumFreq;
uint dwMonitorToneMaxNumEntries;
uint dwMonitorDigitModes;
uint dwGatherDigitsMinTimeout;
uint dwGatherDigitsMaxTimeout;
uint dwMedCtlDigitMaxListSize;
uint dwMedCtlMediaMaxListSize;
uint dwMedCtlToneMaxListSize;
uint dwMedCtlCallStateMaxListSize;
uint dwDevCapFlags;
uint dwMaxNumActiveCalls;
uint dwAnswerMode;
uint dwRingModes;
uint dwLineStates;
uint dwUUIAcceptSize;
uint dwUUIAnswerSize;
uint dwUUIMakeCallSize;
uint dwUUIDropSize;
uint dwUUISendUserUserInfoSize;
uint dwUUICallInfoSize;
LINEDIALPARAMS MinDialParams;
LINEDIALPARAMS MaxDialParams;
LINEDIALPARAMS DefaultDialParams;
uint dwNumTerminals;
uint dwTerminalCapsSize;
uint dwTerminalCapsOffset;
uint dwTerminalTextEntrySize;
uint dwTerminalTextSize;
uint dwTerminalTextOffset;
uint dwDevSpecificSize;
uint dwDevSpecificOffset;
uint dwLineFeatures;
uint dwSettableDevStatus;
uint dwDeviceClassesSize;
uint dwDeviceClassesOffset;
GUID PermanentLineGuid;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINEDEVCAPS サイズ: 268 バイト(x64)
dim st, 67 ; 4byte整数×67(構造体サイズ 268 / 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 も可)
; dwProviderInfoSize : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwProviderInfoOffset : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwSwitchInfoSize : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwSwitchInfoOffset : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwPermanentLineID : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwLineNameSize : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwLineNameOffset : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwStringFormat : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwAddressModes : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwNumAddresses : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwBearerModes : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; dwMaxRate : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; dwMediaModes : DWORD (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; dwGenerateToneModes : DWORD (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; dwGenerateToneMaxNumFreq : DWORD (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; dwGenerateDigitModes : DWORD (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; dwMonitorToneMaxNumFreq : DWORD (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; dwMonitorToneMaxNumEntries : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; dwMonitorDigitModes : DWORD (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; dwGatherDigitsMinTimeout : DWORD (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; dwGatherDigitsMaxTimeout : DWORD (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; dwMedCtlDigitMaxListSize : DWORD (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; dwMedCtlMediaMaxListSize : DWORD (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; dwMedCtlToneMaxListSize : DWORD (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; dwMedCtlCallStateMaxListSize : DWORD (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; dwDevCapFlags : DWORD (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; dwMaxNumActiveCalls : DWORD (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; dwAnswerMode : DWORD (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; dwRingModes : DWORD (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; dwLineStates : DWORD (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; dwUUIAcceptSize : DWORD (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; dwUUIAnswerSize : DWORD (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; dwUUIMakeCallSize : DWORD (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; dwUUIDropSize : DWORD (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; dwUUISendUserUserInfoSize : DWORD (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; dwUUICallInfoSize : DWORD (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; MinDialParams : LINEDIALPARAMS (+156, 16byte) varptr(st)+156 を基点に操作(16byte:入れ子/配列)
; MaxDialParams : LINEDIALPARAMS (+172, 16byte) varptr(st)+172 を基点に操作(16byte:入れ子/配列)
; DefaultDialParams : LINEDIALPARAMS (+188, 16byte) varptr(st)+188 を基点に操作(16byte:入れ子/配列)
; dwNumTerminals : DWORD (+204, 4byte) st.51 = 値 / 値 = st.51 (lpoke/lpeek も可)
; dwTerminalCapsSize : DWORD (+208, 4byte) st.52 = 値 / 値 = st.52 (lpoke/lpeek も可)
; dwTerminalCapsOffset : DWORD (+212, 4byte) st.53 = 値 / 値 = st.53 (lpoke/lpeek も可)
; dwTerminalTextEntrySize : DWORD (+216, 4byte) st.54 = 値 / 値 = st.54 (lpoke/lpeek も可)
; dwTerminalTextSize : DWORD (+220, 4byte) st.55 = 値 / 値 = st.55 (lpoke/lpeek も可)
; dwTerminalTextOffset : DWORD (+224, 4byte) st.56 = 値 / 値 = st.56 (lpoke/lpeek も可)
; dwDevSpecificSize : DWORD (+228, 4byte) st.57 = 値 / 値 = st.57 (lpoke/lpeek も可)
; dwDevSpecificOffset : DWORD (+232, 4byte) st.58 = 値 / 値 = st.58 (lpoke/lpeek も可)
; dwLineFeatures : DWORD (+236, 4byte) st.59 = 値 / 値 = st.59 (lpoke/lpeek も可)
; dwSettableDevStatus : DWORD (+240, 4byte) st.60 = 値 / 値 = st.60 (lpoke/lpeek も可)
; dwDeviceClassesSize : DWORD (+244, 4byte) st.61 = 値 / 値 = st.61 (lpoke/lpeek も可)
; dwDeviceClassesOffset : DWORD (+248, 4byte) st.62 = 値 / 値 = st.62 (lpoke/lpeek も可)
; PermanentLineGuid : GUID (+252, 16byte) varptr(st)+252 を基点に操作(16byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global LINEDIALPARAMS, pack=1
#field int dwDialPause
#field int dwDialSpeed
#field int dwDigitDuration
#field int dwWaitForDialtone
#endstruct
#defstruct global GUID, pack=1
#field int Data1
#field short Data2
#field short Data3
#field byte Data4 8
#endstruct
#defstruct global LINEDEVCAPS, pack=1
#field int dwTotalSize
#field int dwNeededSize
#field int dwUsedSize
#field int dwProviderInfoSize
#field int dwProviderInfoOffset
#field int dwSwitchInfoSize
#field int dwSwitchInfoOffset
#field int dwPermanentLineID
#field int dwLineNameSize
#field int dwLineNameOffset
#field int dwStringFormat
#field int dwAddressModes
#field int dwNumAddresses
#field int dwBearerModes
#field int dwMaxRate
#field int dwMediaModes
#field int dwGenerateToneModes
#field int dwGenerateToneMaxNumFreq
#field int dwGenerateDigitModes
#field int dwMonitorToneMaxNumFreq
#field int dwMonitorToneMaxNumEntries
#field int dwMonitorDigitModes
#field int dwGatherDigitsMinTimeout
#field int dwGatherDigitsMaxTimeout
#field int dwMedCtlDigitMaxListSize
#field int dwMedCtlMediaMaxListSize
#field int dwMedCtlToneMaxListSize
#field int dwMedCtlCallStateMaxListSize
#field int dwDevCapFlags
#field int dwMaxNumActiveCalls
#field int dwAnswerMode
#field int dwRingModes
#field int dwLineStates
#field int dwUUIAcceptSize
#field int dwUUIAnswerSize
#field int dwUUIMakeCallSize
#field int dwUUIDropSize
#field int dwUUISendUserUserInfoSize
#field int dwUUICallInfoSize
#field LINEDIALPARAMS MinDialParams
#field LINEDIALPARAMS MaxDialParams
#field LINEDIALPARAMS DefaultDialParams
#field int dwNumTerminals
#field int dwTerminalCapsSize
#field int dwTerminalCapsOffset
#field int dwTerminalTextEntrySize
#field int dwTerminalTextSize
#field int dwTerminalTextOffset
#field int dwDevSpecificSize
#field int dwDevSpecificOffset
#field int dwLineFeatures
#field int dwSettableDevStatus
#field int dwDeviceClassesSize
#field int dwDeviceClassesOffset
#field GUID PermanentLineGuid
#endstruct
stdim st, LINEDEVCAPS ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize