LINECALLPARAMS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| dwTotalSize | DWORD | 4 | +0 | +0 | このデータ構造体に割り当てられた合計サイズ (バイト単位)。このサイズは、このデータ構造体の固定サイズ部分と可変サイズ部分をすべて格納できる大きさでなければなりません。 |
| dwBearerMode | DWORD | 4 | +4 | +4 | 通話のベアラーモード。このメンバーは LINEBEARERMODE_ 定数 のいずれかを使用します。 dwBearerMode が 0 の場合、既定値は LINEBEARERMODE_VOICE です。 |
| dwMinRate | DWORD | 4 | +8 | +8 | 通話のデータストリームに要求する最小データレート (bps: ビット/秒)。 |
| dwMaxRate | DWORD | 4 | +12 | +12 | 通話のデータストリームに要求する最大データレート (bps: ビット/秒)。通話を発信するとき、サービスプロバイダーは要求された範囲 (dwMinRate から dwMaxRate まで) の中で利用可能な最高のレートを提供しようとします。特定のデータレートが必要な場合は、dwMinRate と dwMaxRate の両方にその値を設定します。アプリケーションが特定のレートで最適に動作しつつ、より低いレートにも対応できる場合は、それぞれ最大レートと最小レートとして指定します。dwMaxRate が 0 の場合、既定値は LINEDEVCAPS 構造体の dwMaxRate メンバーで指定された値になります。これはデバイスがサポートする最大レートです。 |
| dwMediaMode | DWORD | 4 | +16 | +16 | 通話で想定されるメディアタイプ。このメンバーは LINEMEDIAMODE_ 定数 のいずれかを使用します。 dwMediaMode が 0 の場合、既定値は LINEMEDIAMODE_INTERACTIVEVOICE です。 |
| dwCallParamFlags | DWORD | 4 | +20 | +20 | ブール型の呼設定パラメーターの集合。このメンバーは LINECALLPARAMFLAGS_ 定数 の 1 つ以上を使用します。 |
| dwAddressMode | DWORD | 4 | +24 | +24 | 発信元アドレスの指定方法を表すモード。このメンバーは LINEADDRESSMODE_ 定数 のいずれかを使用します。 注 lineOpen 関数の呼び出しでは、dwAddressMode メンバーに LINEADDRESSMODE_ADDRESSID を指定できません。ただし、この制限は lineMakeCall には適用されません。
|
| dwAddressID | DWORD | 4 | +28 | +28 | dwAddressMode に LINEADDRESSMODE_ADDRESSID が設定されている場合の、発信元アドレスのアドレス識別子。アドレス識別子はアドレスに恒久的に関連付けられており、オペレーティングシステムをアップグレードしても変わりません。 |
| DialParams | LINEDIALPARAMS | 16 | +32 | +32 | この通話で使用するダイヤルパラメーター。型は LINEDIALPARAMS です。このフィールドに 0 を指定した場合は、 LINEDEVCAPS 構造体の DefaultDialParams メンバーに示された既定値が使用されます。LINEDEVCAPS 構造体の MinDialParams および MaxDialParams の対応するフィールドで指定される範囲外の 0 以外の値を指定した場合は、有効な範囲内で最も近い値が代わりに使用されます。 |
| dwOrigAddressSize | DWORD | 4 | +48 | +48 | 発信元アドレスフィールドのサイズ (バイト単位)。 |
| dwOrigAddressOffset | DWORD | 4 | +52 | +52 | 構造体の先頭から、発信元アドレスを保持する可変サイズフィールドまでのオフセット。このアドレスの形式は dwAddressMode メンバーによって異なります。フィールドのサイズは dwOrigAddressSize で指定します。 |
| dwDisplayableAddressSize | DWORD | 4 | +56 | +56 | null 終端文字を含む、表示可能文字列のサイズ (バイト単位)。 |
| dwDisplayableAddressOffset | DWORD | 4 | +60 | +60 | ログ記録のために使用される表示可能文字列。これらのメンバーの内容は、通話の LINECALLINFO メッセージの dwDisplayableAddressOffset メンバーおよび dwDisplayableAddressSize メンバーに記録されます。 lineTranslateAddress 関数は、このフィールドに設定するのに適した情報を LINETRANSLATEOUTPUT 構造体の dwDisplayableAddressSize メンバーおよび dwDisplayableAddressOffset メンバーで返します。フィールドのサイズは dwDisplayableAddressSize で指定します。 |
| dwCalledPartySize | DWORD | 4 | +64 | +64 | 着信先情報のサイズ (バイト単位)。 |
| dwCalledPartyOffset | DWORD | 4 | +68 | +68 | 構造体の先頭から、着信先情報を保持する可変サイズフィールドまでのオフセット。この情報は通話を発信するアプリケーションが指定でき、ログ記録のために通話の情報構造体で参照できます。このフィールドの形式は、 LINEDEVCAPS で指定される dwStringFormat の形式です。フィールドのサイズは dwCalledPartySize で指定します。 |
| dwCommentSize | DWORD | 4 | +72 | +72 | 通話コメントフィールドのサイズ (バイト単位)。 |
| dwCommentOffset | DWORD | 4 | +76 | +76 | 構造体の先頭から、通話に関するコメントを保持する可変サイズフィールドまでのオフセット。この情報は通話を発信するアプリケーションが指定でき、ログ記録のために通話の情報構造体で参照できます。このフィールドの形式は、 LINEDEVCAPS で指定される dwStringFormat の形式です。フィールドのサイズは dwCommentSize で指定します。 |
| dwUserUserInfoSize | DWORD | 4 | +80 | +80 | null 終端文字を含む、ユーザー間情報のサイズ (バイト単位)。 |
| dwUserUserInfoOffset | DWORD | 4 | +84 | +84 | 構造体の先頭から、ユーザー間情報を保持する可変サイズフィールドまでのオフセット。ユーザー間情報のプロトコル識別子フィールドが必要な場合は、dwUserUserInfoOffset が指すデータの先頭バイトに配置し、dwUserUserInfoSize にもそのサイズを含める必要があります。 |
| dwHighLevelCompSize | DWORD | 4 | +88 | +88 | 高位互換性情報のサイズ (バイト単位)。 |
| dwHighLevelCompOffset | DWORD | 4 | +92 | +92 | 構造体の先頭から、高位互換性情報を保持する可変サイズフィールドまでのオフセット。フィールドのサイズは dwHighLevelCompSize で指定します。 |
| dwLowLevelCompSize | DWORD | 4 | +96 | +96 | 低位互換性情報のサイズ (バイト単位)。 |
| dwLowLevelCompOffset | DWORD | 4 | +100 | +100 | 構造体の先頭から、低位互換性情報を保持する可変サイズフィールドまでのオフセット。フィールドのサイズは dwLowLevelCompSize で指定します。 |
| dwDevSpecificSize | DWORD | 4 | +104 | +104 | デバイス固有情報のサイズ (バイト単位)。 |
| dwDevSpecificOffset | DWORD | 4 | +108 | +108 | 構造体の先頭から、デバイス固有情報を保持する可変サイズフィールドまでのオフセット。フィールドのサイズは dwDevSpecificSize で指定します。 |
| dwPredictiveAutoTransferStates | DWORD | 4 | +112 | +112 | LINECALLSTATE_ 定数。ここで指定した状態に遷移すると、通話は指定されたターゲットアドレスへブラインド転送されます。自動転送が不要な場合は 0 を設定します。 |
| dwTargetAddressSize | DWORD | 4 | +116 | +116 | null 終端文字を含む、ダイヤル可能なターゲットアドレス文字列のサイズ (バイト単位)。 |
| dwTargetAddressOffset | DWORD | 4 | +120 | +120 | 構造体の先頭から、ダイヤル可能なターゲットアドレス (dwAddressID ではありません) を指定する文字列までのオフセット。特定の自動動作を行う場合に使用します。予測ダイヤルの場合は、通話を自動的に転送する先のアドレスを指定します。文字列のサイズは dwTargetAddressSize で指定します。 これは、自動転送を使用しない場合に lineBlindTransfer に渡す文字列と基本的に同じものです。自動転送が不要な場合は 0 を設定します。ノーホールド会議の場合は、通話に会議接続するアドレスを指定します。ワンステップ転送の場合は、相談通話でダイヤルするアドレスを指定します。 |
| dwSendingFlowspecSize | DWORD | 4 | +124 | +124 | サービス品質情報のサイズ (バイト単位)。 |
| dwSendingFlowspecOffset | DWORD | 4 | +128 | +128 | 構造体の先頭から、 FLOWSPEC 構造体とそれに続く WinSock プロバイダー固有データまでのオフセット。これは QOS 構造体の SendingFlowspec に格納される内容に相当します。通話の送信方向で要求するサービス品質を指定します。FLOWSPEC 構造体に続くプロバイダー固有部分には、他のメモリブロックへのポインターを含めてはなりません。TAPI は、プライベートポインターが指すデータをマーシャリングし、プロセス間通信でアプリケーションへ伝える方法を認識しないためです。フィールドのサイズは dwSendingFlowspecSize で指定します。 |
| dwReceivingFlowspecSize | DWORD | 4 | +132 | +132 | サービス品質情報のサイズ (バイト単位)。 |
| dwReceivingFlowspecOffset | DWORD | 4 | +136 | +136 | 構造体の先頭から、FLOWSPEC 構造体とそれに続く WinSock プロバイダー固有データまでのオフセット。これは QOS 構造体の ReceivingFlowspec に格納される内容に相当します。通話の受信方向で要求するサービス品質を指定します。FLOWSPEC 構造体に続くプロバイダー固有部分には、他のメモリブロックへのポインターを含めてはなりません。TAPI は、プライベートポインターが指すデータをマーシャリングし、プロセス間通信でアプリケーションへ伝える方法を認識しないためです。フィールドのサイズは dwReceivingFlowspecSize で指定します。 |
| dwDeviceClassSize | DWORD | 4 | +140 | +140 | null 終端文字を含む、デバイスクラス文字列のサイズ (バイト単位)。 |
| dwDeviceClassOffset | DWORD | 4 | +144 | +144 | 構造体の先頭から、DeviceConfig で構成が指定されるデバイスのデバイスクラスを示す null 終端文字列までのオフセット。有効なデバイスクラス文字列は、 lineGetID 関数で指定されるものと同じです。文字列のサイズは dwDeviceClassSize で指定します。 |
| dwDeviceConfigSize | DWORD | 4 | +148 | +148 | デバイス構成データのサイズ (バイト単位)。 |
| dwDeviceConfigOffset | DWORD | 4 | +152 | +152 | 構造体の先頭から、不透明な構成データ構造体までのオフセット。この値は、 lineGetDevConfig が返す VARSTRING 構造体の dwStringSize メンバーで返されます。サイズが 0 の場合は、既定のデバイス構成が使用されます。これにより、アプリケーションは通話を開始する前にデバイス構成を設定できます。フィールドのサイズは dwDeviceConfigSize で指定します。 |
| dwCallDataSize | DWORD | 4 | +156 | +156 | アプリケーションが設定可能な通話データのサイズ (バイト単位)。 |
| dwCallDataOffset | DWORD | 4 | +160 | +160 | 構造体の先頭から、通話に最初に関連付けられる、アプリケーションが設定可能な通話データまでのオフセット。フィールドのサイズは dwCallDataSize で指定します。 |
| dwNoAnswerTimeout | DWORD | 4 | +164 | +164 | ダイヤル完了後、通話が PROCEEDING 状態または RINGBACK 状態で待機することを許可する秒数。この時間を過ぎると、サービスプロバイダーは LINECALLSTATE_DISCONNECTED および LINEDISCONNECTMODE_NOANSWER によって通話を自動的に破棄します。値が 0 の場合は、アプリケーションが通話の自動破棄を必要としないことを示します。 |
| dwCallingPartyIDSize | DWORD | 4 | +168 | +168 | null 終端文字を含む、発信者 ID 文字列のサイズ (バイト単位)。null 終端文字も含みます。 |
| dwCallingPartyIDOffset | DWORD | 4 | +172 | +172 | 構造体の先頭から、通話を発信する側の識別情報を指定する null 終端文字列までのオフセット。識別子の内容が受け入れ可能で、経路が利用できる場合、サービスプロバイダーは発信者の識別情報を示すためにその識別子を着信側へ渡します。フィールドのサイズは dwCallingPartyIDSize で指定します。 |
公式ドキュメント
LINECALLPARAMS 構造体は、 lineMakeCall 関数および TSPI_lineMakeCall 関数を使用して通話を発信する際に指定するパラメーターを記述します。 LINECALLPARAMS 構造体は、 lineOpen 関数など他の操作のパラメーターとしても使用されます。
構文ブロックの右側にあるコメントは、この構造体を lineMakeCall に指定しなかった場合に使用される既定値を示します。
解説(Remarks)
デバイス固有の拡張には、このデータ構造体の DevSpecific (dwDevSpecificSize と dwDevSpecificOffset) の可変サイズ領域を使用してください。
この構造体は、通話を設定する際に lineMakeCall のパラメーターとして使用されます。そのフィールドにより、アプリケーションはネットワークに要求するサービス品質のほか、さまざまな ISDN 呼設定パラメーターを指定できます。 lineMakeCall に LINECALLPARAMS 構造体を指定しなかった場合は、上記の既定値を使用して既定の POTS 音声品質通話が要求されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#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)
// LINECALLPARAMS (x64 176 / x86 176 バイト)
#pragma pack(push, 1)
typedef struct LINECALLPARAMS {
DWORD dwTotalSize;
DWORD dwBearerMode;
DWORD dwMinRate;
DWORD dwMaxRate;
DWORD dwMediaMode;
DWORD dwCallParamFlags;
DWORD dwAddressMode;
DWORD dwAddressID;
LINEDIALPARAMS DialParams;
DWORD dwOrigAddressSize;
DWORD dwOrigAddressOffset;
DWORD dwDisplayableAddressSize;
DWORD dwDisplayableAddressOffset;
DWORD dwCalledPartySize;
DWORD dwCalledPartyOffset;
DWORD dwCommentSize;
DWORD dwCommentOffset;
DWORD dwUserUserInfoSize;
DWORD dwUserUserInfoOffset;
DWORD dwHighLevelCompSize;
DWORD dwHighLevelCompOffset;
DWORD dwLowLevelCompSize;
DWORD dwLowLevelCompOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
DWORD dwPredictiveAutoTransferStates;
DWORD dwTargetAddressSize;
DWORD dwTargetAddressOffset;
DWORD dwSendingFlowspecSize;
DWORD dwSendingFlowspecOffset;
DWORD dwReceivingFlowspecSize;
DWORD dwReceivingFlowspecOffset;
DWORD dwDeviceClassSize;
DWORD dwDeviceClassOffset;
DWORD dwDeviceConfigSize;
DWORD dwDeviceConfigOffset;
DWORD dwCallDataSize;
DWORD dwCallDataOffset;
DWORD dwNoAnswerTimeout;
DWORD dwCallingPartyIDSize;
DWORD dwCallingPartyIDOffset;
} LINECALLPARAMS;
#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 LINECALLPARAMS
{
public uint dwTotalSize;
public uint dwBearerMode;
public uint dwMinRate;
public uint dwMaxRate;
public uint dwMediaMode;
public uint dwCallParamFlags;
public uint dwAddressMode;
public uint dwAddressID;
public LINEDIALPARAMS DialParams;
public uint dwOrigAddressSize;
public uint dwOrigAddressOffset;
public uint dwDisplayableAddressSize;
public uint dwDisplayableAddressOffset;
public uint dwCalledPartySize;
public uint dwCalledPartyOffset;
public uint dwCommentSize;
public uint dwCommentOffset;
public uint dwUserUserInfoSize;
public uint dwUserUserInfoOffset;
public uint dwHighLevelCompSize;
public uint dwHighLevelCompOffset;
public uint dwLowLevelCompSize;
public uint dwLowLevelCompOffset;
public uint dwDevSpecificSize;
public uint dwDevSpecificOffset;
public uint dwPredictiveAutoTransferStates;
public uint dwTargetAddressSize;
public uint dwTargetAddressOffset;
public uint dwSendingFlowspecSize;
public uint dwSendingFlowspecOffset;
public uint dwReceivingFlowspecSize;
public uint dwReceivingFlowspecOffset;
public uint dwDeviceClassSize;
public uint dwDeviceClassOffset;
public uint dwDeviceConfigSize;
public uint dwDeviceConfigOffset;
public uint dwCallDataSize;
public uint dwCallDataOffset;
public uint dwNoAnswerTimeout;
public uint dwCallingPartyIDSize;
public uint dwCallingPartyIDOffset;
}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 LINECALLPARAMS
Public dwTotalSize As UInteger
Public dwBearerMode As UInteger
Public dwMinRate As UInteger
Public dwMaxRate As UInteger
Public dwMediaMode As UInteger
Public dwCallParamFlags As UInteger
Public dwAddressMode As UInteger
Public dwAddressID As UInteger
Public DialParams As LINEDIALPARAMS
Public dwOrigAddressSize As UInteger
Public dwOrigAddressOffset As UInteger
Public dwDisplayableAddressSize As UInteger
Public dwDisplayableAddressOffset As UInteger
Public dwCalledPartySize As UInteger
Public dwCalledPartyOffset As UInteger
Public dwCommentSize As UInteger
Public dwCommentOffset As UInteger
Public dwUserUserInfoSize As UInteger
Public dwUserUserInfoOffset As UInteger
Public dwHighLevelCompSize As UInteger
Public dwHighLevelCompOffset As UInteger
Public dwLowLevelCompSize As UInteger
Public dwLowLevelCompOffset As UInteger
Public dwDevSpecificSize As UInteger
Public dwDevSpecificOffset As UInteger
Public dwPredictiveAutoTransferStates As UInteger
Public dwTargetAddressSize As UInteger
Public dwTargetAddressOffset As UInteger
Public dwSendingFlowspecSize As UInteger
Public dwSendingFlowspecOffset As UInteger
Public dwReceivingFlowspecSize As UInteger
Public dwReceivingFlowspecOffset As UInteger
Public dwDeviceClassSize As UInteger
Public dwDeviceClassOffset As UInteger
Public dwDeviceConfigSize As UInteger
Public dwDeviceConfigOffset As UInteger
Public dwCallDataSize As UInteger
Public dwCallDataOffset As UInteger
Public dwNoAnswerTimeout As UInteger
Public dwCallingPartyIDSize As UInteger
Public dwCallingPartyIDOffset As UInteger
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 LINECALLPARAMS(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwBearerMode", wintypes.DWORD),
("dwMinRate", wintypes.DWORD),
("dwMaxRate", wintypes.DWORD),
("dwMediaMode", wintypes.DWORD),
("dwCallParamFlags", wintypes.DWORD),
("dwAddressMode", wintypes.DWORD),
("dwAddressID", wintypes.DWORD),
("DialParams", LINEDIALPARAMS),
("dwOrigAddressSize", wintypes.DWORD),
("dwOrigAddressOffset", wintypes.DWORD),
("dwDisplayableAddressSize", wintypes.DWORD),
("dwDisplayableAddressOffset", wintypes.DWORD),
("dwCalledPartySize", wintypes.DWORD),
("dwCalledPartyOffset", wintypes.DWORD),
("dwCommentSize", wintypes.DWORD),
("dwCommentOffset", wintypes.DWORD),
("dwUserUserInfoSize", wintypes.DWORD),
("dwUserUserInfoOffset", wintypes.DWORD),
("dwHighLevelCompSize", wintypes.DWORD),
("dwHighLevelCompOffset", wintypes.DWORD),
("dwLowLevelCompSize", wintypes.DWORD),
("dwLowLevelCompOffset", wintypes.DWORD),
("dwDevSpecificSize", wintypes.DWORD),
("dwDevSpecificOffset", wintypes.DWORD),
("dwPredictiveAutoTransferStates", wintypes.DWORD),
("dwTargetAddressSize", wintypes.DWORD),
("dwTargetAddressOffset", wintypes.DWORD),
("dwSendingFlowspecSize", wintypes.DWORD),
("dwSendingFlowspecOffset", wintypes.DWORD),
("dwReceivingFlowspecSize", wintypes.DWORD),
("dwReceivingFlowspecOffset", wintypes.DWORD),
("dwDeviceClassSize", wintypes.DWORD),
("dwDeviceClassOffset", wintypes.DWORD),
("dwDeviceConfigSize", wintypes.DWORD),
("dwDeviceConfigOffset", wintypes.DWORD),
("dwCallDataSize", wintypes.DWORD),
("dwCallDataOffset", wintypes.DWORD),
("dwNoAnswerTimeout", wintypes.DWORD),
("dwCallingPartyIDSize", wintypes.DWORD),
("dwCallingPartyIDOffset", wintypes.DWORD),
]#[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 LINECALLPARAMS {
pub dwTotalSize: u32,
pub dwBearerMode: u32,
pub dwMinRate: u32,
pub dwMaxRate: u32,
pub dwMediaMode: u32,
pub dwCallParamFlags: u32,
pub dwAddressMode: u32,
pub dwAddressID: u32,
pub DialParams: LINEDIALPARAMS,
pub dwOrigAddressSize: u32,
pub dwOrigAddressOffset: u32,
pub dwDisplayableAddressSize: u32,
pub dwDisplayableAddressOffset: u32,
pub dwCalledPartySize: u32,
pub dwCalledPartyOffset: u32,
pub dwCommentSize: u32,
pub dwCommentOffset: u32,
pub dwUserUserInfoSize: u32,
pub dwUserUserInfoOffset: u32,
pub dwHighLevelCompSize: u32,
pub dwHighLevelCompOffset: u32,
pub dwLowLevelCompSize: u32,
pub dwLowLevelCompOffset: u32,
pub dwDevSpecificSize: u32,
pub dwDevSpecificOffset: u32,
pub dwPredictiveAutoTransferStates: u32,
pub dwTargetAddressSize: u32,
pub dwTargetAddressOffset: u32,
pub dwSendingFlowspecSize: u32,
pub dwSendingFlowspecOffset: u32,
pub dwReceivingFlowspecSize: u32,
pub dwReceivingFlowspecOffset: u32,
pub dwDeviceClassSize: u32,
pub dwDeviceClassOffset: u32,
pub dwDeviceConfigSize: u32,
pub dwDeviceConfigOffset: u32,
pub dwCallDataSize: u32,
pub dwCallDataOffset: u32,
pub dwNoAnswerTimeout: u32,
pub dwCallingPartyIDSize: u32,
pub dwCallingPartyIDOffset: u32,
}import "golang.org/x/sys/windows"
type LINEDIALPARAMS struct {
dwDialPause uint32
dwDialSpeed uint32
dwDigitDuration uint32
dwWaitForDialtone uint32
}
type LINECALLPARAMS struct {
dwTotalSize uint32
dwBearerMode uint32
dwMinRate uint32
dwMaxRate uint32
dwMediaMode uint32
dwCallParamFlags uint32
dwAddressMode uint32
dwAddressID uint32
DialParams LINEDIALPARAMS
dwOrigAddressSize uint32
dwOrigAddressOffset uint32
dwDisplayableAddressSize uint32
dwDisplayableAddressOffset uint32
dwCalledPartySize uint32
dwCalledPartyOffset uint32
dwCommentSize uint32
dwCommentOffset uint32
dwUserUserInfoSize uint32
dwUserUserInfoOffset uint32
dwHighLevelCompSize uint32
dwHighLevelCompOffset uint32
dwLowLevelCompSize uint32
dwLowLevelCompOffset uint32
dwDevSpecificSize uint32
dwDevSpecificOffset uint32
dwPredictiveAutoTransferStates uint32
dwTargetAddressSize uint32
dwTargetAddressOffset uint32
dwSendingFlowspecSize uint32
dwSendingFlowspecOffset uint32
dwReceivingFlowspecSize uint32
dwReceivingFlowspecOffset uint32
dwDeviceClassSize uint32
dwDeviceClassOffset uint32
dwDeviceConfigSize uint32
dwDeviceConfigOffset uint32
dwCallDataSize uint32
dwCallDataOffset uint32
dwNoAnswerTimeout uint32
dwCallingPartyIDSize uint32
dwCallingPartyIDOffset uint32
}type
LINEDIALPARAMS = packed record
dwDialPause: DWORD;
dwDialSpeed: DWORD;
dwDigitDuration: DWORD;
dwWaitForDialtone: DWORD;
end;
LINECALLPARAMS = packed record
dwTotalSize: DWORD;
dwBearerMode: DWORD;
dwMinRate: DWORD;
dwMaxRate: DWORD;
dwMediaMode: DWORD;
dwCallParamFlags: DWORD;
dwAddressMode: DWORD;
dwAddressID: DWORD;
DialParams: LINEDIALPARAMS;
dwOrigAddressSize: DWORD;
dwOrigAddressOffset: DWORD;
dwDisplayableAddressSize: DWORD;
dwDisplayableAddressOffset: DWORD;
dwCalledPartySize: DWORD;
dwCalledPartyOffset: DWORD;
dwCommentSize: DWORD;
dwCommentOffset: DWORD;
dwUserUserInfoSize: DWORD;
dwUserUserInfoOffset: DWORD;
dwHighLevelCompSize: DWORD;
dwHighLevelCompOffset: DWORD;
dwLowLevelCompSize: DWORD;
dwLowLevelCompOffset: DWORD;
dwDevSpecificSize: DWORD;
dwDevSpecificOffset: DWORD;
dwPredictiveAutoTransferStates: DWORD;
dwTargetAddressSize: DWORD;
dwTargetAddressOffset: DWORD;
dwSendingFlowspecSize: DWORD;
dwSendingFlowspecOffset: DWORD;
dwReceivingFlowspecSize: DWORD;
dwReceivingFlowspecOffset: DWORD;
dwDeviceClassSize: DWORD;
dwDeviceClassOffset: DWORD;
dwDeviceConfigSize: DWORD;
dwDeviceConfigOffset: DWORD;
dwCallDataSize: DWORD;
dwCallDataOffset: DWORD;
dwNoAnswerTimeout: DWORD;
dwCallingPartyIDSize: DWORD;
dwCallingPartyIDOffset: DWORD;
end;const LINEDIALPARAMS = extern struct {
dwDialPause: u32,
dwDialSpeed: u32,
dwDigitDuration: u32,
dwWaitForDialtone: u32,
};
const LINECALLPARAMS = extern struct {
dwTotalSize: u32,
dwBearerMode: u32,
dwMinRate: u32,
dwMaxRate: u32,
dwMediaMode: u32,
dwCallParamFlags: u32,
dwAddressMode: u32,
dwAddressID: u32,
DialParams: LINEDIALPARAMS,
dwOrigAddressSize: u32,
dwOrigAddressOffset: u32,
dwDisplayableAddressSize: u32,
dwDisplayableAddressOffset: u32,
dwCalledPartySize: u32,
dwCalledPartyOffset: u32,
dwCommentSize: u32,
dwCommentOffset: u32,
dwUserUserInfoSize: u32,
dwUserUserInfoOffset: u32,
dwHighLevelCompSize: u32,
dwHighLevelCompOffset: u32,
dwLowLevelCompSize: u32,
dwLowLevelCompOffset: u32,
dwDevSpecificSize: u32,
dwDevSpecificOffset: u32,
dwPredictiveAutoTransferStates: u32,
dwTargetAddressSize: u32,
dwTargetAddressOffset: u32,
dwSendingFlowspecSize: u32,
dwSendingFlowspecOffset: u32,
dwReceivingFlowspecSize: u32,
dwReceivingFlowspecOffset: u32,
dwDeviceClassSize: u32,
dwDeviceClassOffset: u32,
dwDeviceConfigSize: u32,
dwDeviceConfigOffset: u32,
dwCallDataSize: u32,
dwCallDataOffset: u32,
dwNoAnswerTimeout: u32,
dwCallingPartyIDSize: u32,
dwCallingPartyIDOffset: u32,
};type
LINEDIALPARAMS {.packed.} = object
dwDialPause: uint32
dwDialSpeed: uint32
dwDigitDuration: uint32
dwWaitForDialtone: uint32
LINECALLPARAMS {.packed.} = object
dwTotalSize: uint32
dwBearerMode: uint32
dwMinRate: uint32
dwMaxRate: uint32
dwMediaMode: uint32
dwCallParamFlags: uint32
dwAddressMode: uint32
dwAddressID: uint32
DialParams: LINEDIALPARAMS
dwOrigAddressSize: uint32
dwOrigAddressOffset: uint32
dwDisplayableAddressSize: uint32
dwDisplayableAddressOffset: uint32
dwCalledPartySize: uint32
dwCalledPartyOffset: uint32
dwCommentSize: uint32
dwCommentOffset: uint32
dwUserUserInfoSize: uint32
dwUserUserInfoOffset: uint32
dwHighLevelCompSize: uint32
dwHighLevelCompOffset: uint32
dwLowLevelCompSize: uint32
dwLowLevelCompOffset: uint32
dwDevSpecificSize: uint32
dwDevSpecificOffset: uint32
dwPredictiveAutoTransferStates: uint32
dwTargetAddressSize: uint32
dwTargetAddressOffset: uint32
dwSendingFlowspecSize: uint32
dwSendingFlowspecOffset: uint32
dwReceivingFlowspecSize: uint32
dwReceivingFlowspecOffset: uint32
dwDeviceClassSize: uint32
dwDeviceClassOffset: uint32
dwDeviceConfigSize: uint32
dwDeviceConfigOffset: uint32
dwCallDataSize: uint32
dwCallDataOffset: uint32
dwNoAnswerTimeout: uint32
dwCallingPartyIDSize: uint32
dwCallingPartyIDOffset: uint32align(1)
struct LINEDIALPARAMS
{
uint dwDialPause;
uint dwDialSpeed;
uint dwDigitDuration;
uint dwWaitForDialtone;
}
align(1)
struct LINECALLPARAMS
{
uint dwTotalSize;
uint dwBearerMode;
uint dwMinRate;
uint dwMaxRate;
uint dwMediaMode;
uint dwCallParamFlags;
uint dwAddressMode;
uint dwAddressID;
LINEDIALPARAMS DialParams;
uint dwOrigAddressSize;
uint dwOrigAddressOffset;
uint dwDisplayableAddressSize;
uint dwDisplayableAddressOffset;
uint dwCalledPartySize;
uint dwCalledPartyOffset;
uint dwCommentSize;
uint dwCommentOffset;
uint dwUserUserInfoSize;
uint dwUserUserInfoOffset;
uint dwHighLevelCompSize;
uint dwHighLevelCompOffset;
uint dwLowLevelCompSize;
uint dwLowLevelCompOffset;
uint dwDevSpecificSize;
uint dwDevSpecificOffset;
uint dwPredictiveAutoTransferStates;
uint dwTargetAddressSize;
uint dwTargetAddressOffset;
uint dwSendingFlowspecSize;
uint dwSendingFlowspecOffset;
uint dwReceivingFlowspecSize;
uint dwReceivingFlowspecOffset;
uint dwDeviceClassSize;
uint dwDeviceClassOffset;
uint dwDeviceConfigSize;
uint dwDeviceConfigOffset;
uint dwCallDataSize;
uint dwCallDataOffset;
uint dwNoAnswerTimeout;
uint dwCallingPartyIDSize;
uint dwCallingPartyIDOffset;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINECALLPARAMS サイズ: 176 バイト(x64)
dim st, 44 ; 4byte整数×44(構造体サイズ 176 / 4 切り上げ)
; dwTotalSize : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; dwBearerMode : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; dwMinRate : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; dwMaxRate : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwMediaMode : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwCallParamFlags : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwAddressMode : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwAddressID : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; DialParams : LINEDIALPARAMS (+32, 16byte) varptr(st)+32 を基点に操作(16byte:入れ子/配列)
; dwOrigAddressSize : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwOrigAddressOffset : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; dwDisplayableAddressSize : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; dwDisplayableAddressOffset : DWORD (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; dwCalledPartySize : DWORD (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; dwCalledPartyOffset : DWORD (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; dwCommentSize : DWORD (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; dwCommentOffset : DWORD (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; dwUserUserInfoSize : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; dwUserUserInfoOffset : DWORD (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; dwHighLevelCompSize : DWORD (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; dwHighLevelCompOffset : DWORD (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; dwLowLevelCompSize : DWORD (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; dwLowLevelCompOffset : DWORD (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; dwDevSpecificSize : DWORD (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; dwDevSpecificOffset : DWORD (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; dwPredictiveAutoTransferStates : DWORD (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; dwTargetAddressSize : DWORD (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; dwTargetAddressOffset : DWORD (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; dwSendingFlowspecSize : DWORD (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; dwSendingFlowspecOffset : DWORD (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; dwReceivingFlowspecSize : DWORD (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; dwReceivingFlowspecOffset : DWORD (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; dwDeviceClassSize : DWORD (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; dwDeviceClassOffset : DWORD (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; dwDeviceConfigSize : DWORD (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; dwDeviceConfigOffset : DWORD (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; dwCallDataSize : DWORD (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; dwCallDataOffset : DWORD (+160, 4byte) st.40 = 値 / 値 = st.40 (lpoke/lpeek も可)
; dwNoAnswerTimeout : DWORD (+164, 4byte) st.41 = 値 / 値 = st.41 (lpoke/lpeek も可)
; dwCallingPartyIDSize : DWORD (+168, 4byte) st.42 = 値 / 値 = st.42 (lpoke/lpeek も可)
; dwCallingPartyIDOffset : DWORD (+172, 4byte) st.43 = 値 / 値 = st.43 (lpoke/lpeek も可)
; ※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 LINECALLPARAMS, pack=1
#field int dwTotalSize
#field int dwBearerMode
#field int dwMinRate
#field int dwMaxRate
#field int dwMediaMode
#field int dwCallParamFlags
#field int dwAddressMode
#field int dwAddressID
#field LINEDIALPARAMS DialParams
#field int dwOrigAddressSize
#field int dwOrigAddressOffset
#field int dwDisplayableAddressSize
#field int dwDisplayableAddressOffset
#field int dwCalledPartySize
#field int dwCalledPartyOffset
#field int dwCommentSize
#field int dwCommentOffset
#field int dwUserUserInfoSize
#field int dwUserUserInfoOffset
#field int dwHighLevelCompSize
#field int dwHighLevelCompOffset
#field int dwLowLevelCompSize
#field int dwLowLevelCompOffset
#field int dwDevSpecificSize
#field int dwDevSpecificOffset
#field int dwPredictiveAutoTransferStates
#field int dwTargetAddressSize
#field int dwTargetAddressOffset
#field int dwSendingFlowspecSize
#field int dwSendingFlowspecOffset
#field int dwReceivingFlowspecSize
#field int dwReceivingFlowspecOffset
#field int dwDeviceClassSize
#field int dwDeviceClassOffset
#field int dwDeviceConfigSize
#field int dwDeviceConfigOffset
#field int dwCallDataSize
#field int dwCallDataOffset
#field int dwNoAnswerTimeout
#field int dwCallingPartyIDSize
#field int dwCallingPartyIDOffset
#endstruct
stdim st, LINECALLPARAMS ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize