LINECALLINFO
構造体サイズ=各フィールドのバイト数(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 | このデータ構造体のうち、有用な情報が格納されている部分のサイズ (バイト単位)。 |
| hLine | DWORD | 4 | +12 | +12 | この通話が関連付けられている回線デバイスへのハンドル。 |
| dwLineDeviceID | DWORD | 4 | +16 | +16 | この通話が関連付けられている回線デバイスのデバイス識別子。 |
| dwAddressID | DWORD | 4 | +20 | +20 | この通話が存在する回線上のアドレスのアドレス識別子。アドレス識別子はアドレスに恒久的に関連付けられており、オペレーティング システムのアップグレードをまたいでも一定のままです。 |
| dwBearerMode | DWORD | 4 | +24 | +24 | 通話の現在のベアラーモード。このメンバーは LINEBEARERMODE_ 定数 のいずれかを使用します。 |
| dwRate | DWORD | 4 | +28 | +28 | 通話のデータ ストリームのレート (bps: ビット/秒)。 |
| dwMediaMode | DWORD | 4 | +32 | +32 | 現在この通話で扱われている情報ストリームのメディアの種類。これは通話の所有者によって決定されるメディアの種類であり、直前の LINE_MONITORMEDIA メッセージのものと必ずしも同じではありません。このメンバーは LINE_MONITORMEDIA メッセージの影響を直接受けません。このメンバーは LINEMEDIAMODE_ 定数 を使用します。 |
| dwAppSpecific | DWORD | 4 | +36 | +36 | API の実装およびサービス プロバイダーでは解釈されません。この通話の所有者アプリケーションであれば、 lineSetAppSpecific 関数で設定できます。 |
| dwCallID | DWORD | 4 | +40 | +40 | テレフォニー環境によっては、スイッチまたはサービス プロバイダーが各通話に一意の識別子を割り当てられます。これにより、転送や転送先変更などのイベントをまたいで通話を追跡できます。これらの通話 ID の値域とスコープはサービス プロバイダーが定義します。dwCallID メンバーは、この一意の識別子をアプリケーションから利用できるようにします。 |
| dwRelatedCallID | DWORD | 4 | +44 | +44 | 通話 ID を使用するテレフォニー環境では、ある通話を別の通話に関連付ける必要が生じることがよくあります。dwRelatedCallID メンバーは、この目的でサービス プロバイダーが使用できます。 |
| dwCallParamFlags | DWORD | 4 | +48 | +48 | 通話が発信である場合の、通話に関するパラメーターの集合。これらは lineMakeCall で指定される通話パラメーターと同じであり、 LINECALLPARAMFLAGS_ 定数 の 1 つ以上です。 |
| dwCallStates | DWORD | 4 | +52 | +52 | この通話でアプリケーションが通知を受け取れる状態を示す、1 つ以上の LINECALLSTATE_ 定数。dwCallStates メンバーは LINECALLINFO において一定であり、通話の状態によって変化しません。 |
| dwMonitorDigitModes | DWORD | 4 | +56 | +56 | 各種のダイヤル桁モード。このメンバーは、現在監視が有効になっている LINEDIGITMODE_ 定数 の 1 つ以上です。 |
| dwMonitorMediaModes | DWORD | 4 | +60 | +60 | 現在監視が有効になっている各種のメディアの種類。このメンバーは LINEMEDIAMODE_ 定数 の 1 つ以上です。 |
| DialParams | LINEDIALPARAMS | 16 | +64 | +64 | この通話で現在有効なダイヤル パラメーター。型は LINEDIALPARAMS です。これらのパラメーターが lineMakeCall または lineSetCallParams で設定されていない限り、その値は LINEDEVCAPS 構造体で使用される既定値と同じです。 |
| dwOrigin | DWORD | 4 | +80 | +80 | 通話の発信元を示します。このメンバーは LINECALLORIGIN_ 定数 のいずれかになります。 |
| dwReason | DWORD | 4 | +84 | +84 | 通話が発生した理由。このメンバーは LINECALLREASON_ 定数 のいずれかになります。 |
| dwCompletionID | DWORD | 4 | +88 | +88 | 着信通話が完了要求の終了によって発生した場合の、その完了識別子。この識別子は、dwReason が LINECALLREASON_CALLCOMPLETION の場合にのみ意味を持ちます。 |
| dwNumOwners | DWORD | 4 | +92 | +92 | この通話に対して所有者特権を持つ、異なる通話ハンドルを保持するアプリケーション モジュールの数。 |
| dwNumMonitors | DWORD | 4 | +96 | +96 | この通話に対して監視特権を持つ、異なる通話ハンドルを保持するアプリケーション モジュールの数。 |
| dwCountryCode | DWORD | 4 | +100 | +100 | 相手先の国または地域コード。不明な場合は 0 です。 |
| dwTrunk | DWORD | 4 | +104 | +104 | 通話がルーティングされるトランクの番号。このメンバーは着信と発信の両方の通話で使用されます。不明な場合、dwTrunk メンバーは 0xFFFFFFFF に設定します。 |
| dwCallerIDFlags | DWORD | 4 | +108 | +108 | 発信者 (発呼側) の相手先識別子情報の有効性と内容を決定します。このメンバーは LINECALLPARTYID_ 定数 のいずれかを使用します。 |
| dwCallerIDSize | DWORD | 4 | +112 | +112 | 発信者 ID 番号のサイズ (バイト単位)。 |
| dwCallerIDOffset | DWORD | 4 | +116 | +116 | この構造体の先頭から、発信者側 ID 番号の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwCallerIDSize で指定されます。 |
| dwCallerIDNameSize | DWORD | 4 | +120 | +120 | null 終端文字を含む発信者 ID 名のサイズ (バイト単位)。 |
| dwCallerIDNameOffset | DWORD | 4 | +124 | +124 | この構造体の先頭から、発信者側 ID 名の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwCallerIDNameSize で指定されます。 |
| dwCalledIDFlags | DWORD | 4 | +128 | +128 | 着信側 ID 情報の有効性と内容を決定します。着信側は、最初にアドレス指定された相手に対応します。このメンバーは LINECALLPARTYID_ 定数 のいずれかを使用します。 |
| dwCalledIDSize | DWORD | 4 | +132 | +132 | 着信側 ID 番号のサイズ (バイト単位)。 |
| dwCalledIDOffset | DWORD | 4 | +136 | +136 | この構造体の先頭から、着信側 ID 番号の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwCalledIDSize で指定されます。 |
| dwCalledIDNameSize | DWORD | 4 | +140 | +140 | null 終端文字を含む着信側 ID 名のサイズ (バイト単位)。 |
| dwCalledIDNameOffset | DWORD | 4 | +144 | +144 | この構造体の先頭から、着信側 ID 名の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwCalledIDNameSize で指定されます。 |
| dwConnectedIDFlags | DWORD | 4 | +148 | +148 | 接続先の相手先 ID 情報の有効性と内容を決定します。接続先の相手先とは、実際に接続された相手です。通話が転送された場合、これは着信側 ID と異なることがあります。このメンバーは LINECALLPARTYID_ 定数 のいずれかを使用します。 |
| dwConnectedIDSize | DWORD | 4 | +152 | +152 | 接続先の相手先 ID 番号のサイズ (バイト単位)。 |
| dwConnectedIDOffset | DWORD | 4 | +156 | +156 | この構造体の先頭から、接続先の相手先 ID 番号の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwConnectedIDSize で指定されます。 |
| dwConnectedIDNameSize | DWORD | 4 | +160 | +160 | null 終端文字を含む接続先の相手先 ID 名のサイズ (バイト単位)。 |
| dwConnectedIDNameOffset | DWORD | 4 | +164 | +164 | この構造体の先頭から、接続先の相手先 ID 名の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwConnectedIDNameSize で指定されます。 |
| dwRedirectionIDFlags | DWORD | 4 | +168 | +168 | リダイレクト先の相手先識別子情報の有効性と内容を決定します。リダイレクト先の相手先は、セッションのリダイレクト先となったアドレスを示します。このメンバーは LINECALLPARTYID_ 定数 のいずれかを使用します。 |
| dwRedirectionIDSize | DWORD | 4 | +172 | +172 | リダイレクト先の相手先 ID 番号のサイズ (バイト単位)。 |
| dwRedirectionIDOffset | DWORD | 4 | +176 | +176 | この構造体の先頭から、リダイレクト先の相手先 ID 番号の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwRedirectionIDSize で指定されます。 |
| dwRedirectionIDNameSize | DWORD | 4 | +180 | +180 | リダイレクト先の相手先 ID 名のサイズ (バイト単位)。 |
| dwRedirectionIDNameOffset | DWORD | 4 | +184 | +184 | この構造体の先頭から、リダイレクト先の相手先 ID 名の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwRedirectionIDNameSize で指定されます。 |
| dwRedirectingIDFlags | DWORD | 4 | +188 | +188 | リダイレクト元の相手先識別子情報の有効性と内容を決定します。リダイレクト元の相手先は、セッションをリダイレクトしたアドレスを示します。このメンバーは LINECALLPARTYID_ 定数 のいずれかを使用します。 |
| dwRedirectingIDSize | DWORD | 4 | +192 | +192 | リダイレクト元の相手先 ID 番号のサイズ (バイト単位)。 |
| dwRedirectingIDOffset | DWORD | 4 | +196 | +196 | この構造体の先頭から、リダイレクト元の相手先 ID 番号の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwRedirectingIDSize で指定されます。 |
| dwRedirectingIDNameSize | DWORD | 4 | +200 | +200 | null 終端文字を含むリダイレクト元の相手先 ID 名のサイズ (バイト単位)。 |
| dwRedirectingIDNameOffset | DWORD | 4 | +204 | +204 | この構造体の先頭から、リダイレクト元の相手先 ID 名の情報を格納する可変長フィールドまでのオフセット。このフィールドのサイズは dwRedirectingIDNameSize で指定されます。 |
| dwAppNameSize | DWORD | 4 | +208 | +208 | null 終端文字を含むアプリケーション名フィールドのサイズ (バイト単位)。 |
| dwAppNameOffset | DWORD | 4 | +212 | +212 | この構造体の先頭から、通話を最初に発信、受け入れ、または応答したアプリケーションのわかりやすい名前を保持する可変長フィールドまでのオフセット。これは、アプリケーションが lineInitializeEx で指定できる名前です。アプリケーションがそのような名前を指定しない場合は、代わりにアプリケーションのモジュール ファイル名が使用されます。このフィールドのサイズは dwAppNameSize で指定されます。 |
| dwDisplayableAddressSize | DWORD | 4 | +216 | +216 | null 終端文字を含む表示可能なアドレス文字列のサイズ (バイト単位)。 |
| dwDisplayableAddressOffset | DWORD | 4 | +220 | +220 | 表示可能な文字列はログ記録の目的で使用されます。この情報は、通話を開始する関数の場合は LINECALLPARAMS から取得されます。 lineTranslateAddress 関数は、このフィールドに格納するのに適した情報を、 LINETRANSLATEOUTPUT 構造体の dwDisplayableAddressSize メンバーおよび dwDisplayableAddressOffset メンバーで返します。 |
| dwCalledPartySize | DWORD | 4 | +224 | +224 | 着信側の説明フィールドのサイズ (バイト単位)。 |
| dwCalledPartyOffset | DWORD | 4 | +228 | +228 | この構造体の先頭から、着信側のわかりやすい説明を指定する可変長フィールドまでのオフセット。この情報は lineMakeCall で指定でき、また新しい通話を確立する際に lpCallParams パラメーターで任意に指定できます。通話のログ記録の目的で役立ちます。このフィールドのサイズは dwCalledPartySize で指定されます。 |
| dwCommentSize | DWORD | 4 | +232 | +232 | コメント フィールドのサイズ (バイト単位)。 |
| dwCommentOffset | DWORD | 4 | +236 | +236 | この構造体の先頭から、 lineMakeCall を使用して通話を発信したアプリケーションが提供する、通話に関するコメントを保持する可変長フィールドまでのオフセット。この情報は、新しい通話を確立する際に lpCallParams パラメーターで任意に指定できます。このフィールドのサイズは dwCommentSize で指定されます。 |
| dwDisplaySize | DWORD | 4 | +240 | +240 | 生の表示情報のサイズ (バイト単位)。 |
| dwDisplayOffset | DWORD | 4 | +244 | +244 | この構造体の先頭から、生の表示情報を保持する可変長フィールドまでのオフセット。テレフォニー環境によっては、サービス プロバイダーがこのメンバーの組から機能的な情報を抽出し、そのテレフォニー構成に最も適した形式で整形して表示することがあります。このフィールドのサイズは dwDisplaySize で指定されます。 |
| dwUserUserInfoSize | DWORD | 4 | +248 | +248 | ユーザー間情報のサイズ (バイト単位)。ユーザー間情報が文字列へのポインターである場合、サイズには null 終端文字を含める必要があります。 |
| dwUserUserInfoOffset | DWORD | 4 | +252 | +252 | この構造体の先頭から、ユーザー間情報を保持する可変長フィールドまでのオフセット。ユーザー間情報のプロトコル識別子フィールドは、使用される場合、dwUserUserInfoOffset が指すデータの最初のバイトとして現れ、dwUserUserInfoSize に含めて計上されます。 |
| dwHighLevelCompSize | DWORD | 4 | +256 | +256 | 高位互換性情報のサイズ (バイト単位)。 |
| dwHighLevelCompOffset | DWORD | 4 | +260 | +260 | この構造体の先頭から、高位互換性情報を保持する可変長フィールドまでのオフセット。この情報の形式は他の標準 (ISDN Q.931) で規定されています。このフィールドのサイズは dwHighLevelCompSize で指定されます。 |
| dwLowLevelCompSize | DWORD | 4 | +264 | +264 | 低位互換性情報のサイズ (バイト単位)。 |
| dwLowLevelCompOffset | DWORD | 4 | +268 | +268 | この構造体の先頭から、低位互換性情報を保持する可変長フィールドまでのオフセット。この情報の形式は他の標準 (ISDN Q.931) で規定されています。このフィールドのサイズは dwLowLevelCompSize で指定されます。 |
| dwChargingInfoSize | DWORD | 4 | +272 | +272 | 課金情報のサイズ (バイト単位)。 |
| dwChargingInfoOffset | DWORD | 4 | +276 | +276 | この構造体の先頭から、課金情報を保持する可変長フィールドまでのオフセット。この情報の形式は他の標準 (ISDN Q.931) で規定されています。このフィールドのサイズは dwChargingInfoSize で指定されます。 |
| dwTerminalModesSize | DWORD | 4 | +280 | +280 | 現在の端末モード配列のサイズ (バイト単位)。 |
| dwTerminalModesOffset | DWORD | 4 | +284 | +284 | この構造体の先頭から、DWORD サイズのエントリを持つ配列を格納する可変長のデバイス フィールドまでのオフセット。配列のエントリは、0 から dwNumTerminals より 1 小さい値までの範囲の端末識別子でインデックス付けされます。配列の各エントリは、この通話のメディア ストリームに対して lineSetTerminal 関数で設定された、対応する端末の現在の端末モードを LINETERMMODE_ 定数 のいずれかで指定します。配列のサイズは dwTerminalModesSize で指定されます。 |
| dwDevSpecificSize | DWORD | 4 | +288 | +288 | デバイス固有フィールドのサイズ (バイト単位)。 |
| dwDevSpecificOffset | DWORD | 4 | +292 | +292 | この構造体の先頭から、デバイス固有の情報を保持する可変長フィールドまでのオフセット。このフィールドのサイズは dwDevSpecificSize で指定されます。 |
| dwCallTreatment | DWORD | 4 | +296 | +296 | 現在この通話に適用されている、または通話が次の該当する状態になったときに適用される通話処理 (call treatment)。通話処理がサポートされていない場合は 0 になることがあります。 |
| dwCallDataSize | DWORD | 4 | +300 | +300 | アプリケーションが設定可能な通話データのサイズ (バイト単位)。 |
| dwCallDataOffset | DWORD | 4 | +304 | +304 | この構造体の先頭から、アプリケーションが設定可能な通話データまでのオフセット。このフィールドのサイズは dwCallDataSize で指定されます。 |
| dwSendingFlowspecSize | DWORD | 4 | +308 | +308 | サービス品質 (QoS) 情報のサイズ (バイト単位)。 |
| dwSendingFlowspecOffset | DWORD | 4 | +312 | +312 | この構造体の先頭から、 FLOWSPEC 構造体と、それに続く WinSock プロバイダー固有のデータまでのオフセット。これは QOS 構造体の SendingFlowspec に格納されるものと同等です。この通話の送信方向で現在有効なサービス品質を指定します。FLOWSPEC 構造体に続くプロバイダー固有の部分には、他のメモリ ブロックへのポインターを含めてはなりません。TAPI は、プライベート ポインターが指すデータをマーシャリングし、プロセス間通信でアプリケーションに伝達する方法を知らないためです。このフィールドのサイズは dwSendingFlowspecSize で指定されます。 |
| dwReceivingFlowspecSize | DWORD | 4 | +316 | +316 | サービス品質 (QoS) 情報のサイズ (バイト単位)。 |
| dwReceivingFlowspecOffset | DWORD | 4 | +320 | +320 | この構造体の先頭から、FLOWSPEC 構造体と、それに続く WinSock プロバイダー固有のデータまでのオフセット。これは QOS 構造体の ReceivingFlowspec に格納されるものと同等です。この通話の受信方向で現在有効なサービス品質を指定します。FLOWSPEC 構造体に続くプロバイダー固有の部分には、他のメモリ ブロックへのポインターを含めてはなりません。TAPI は、プライベート ポインターが指すデータをマーシャリングし、プロセス間通信でアプリケーションに伝達する方法を知らないためです。このフィールドのサイズは dwReceivingFlowspecSize で指定されます。 |
公式ドキュメント
LINECALLINFO 構造体は、通話に関する情報を格納します。この情報は、通話中は比較的固定されたままです。複数の関数が LINECALLINFO を使用します。この構造体は lineGetCallInfo 関数および TSPI_lineGetCallInfo 関数によって返されます。構造体の一部が変化した場合は、どの情報項目が変化したかを示す LINE_CALLINFO メッセージがアプリケーションに送信されます。
通話の進行状況など、動的に変化する通話の情報は、 lineGetCallStatus 関数の呼び出しによって返される LINECALLSTATUS 構造体で取得できます。
解説(Remarks)
デバイス固有の拡張には、このデータ構造体の DevSpecific 部分 (dwDevSpecificSize および dwDevSpecificOffset) の可変長領域を使用してください。
LINECALLINFO データ構造体は、通話に関する比較的固定された情報を格納します。この構造体は lineGetCallInfo によって返されます。このデータ構造体内の情報項目が変化すると、LINE_CALLINFO メッセージがアプリケーションに送信されます。このメッセージのパラメーターの 1 つは、変化した情報項目またはフィールドです。
dwCallTreatment から dwReceivingFlowspecOffset までのメンバーは、API バージョン 2.0 以降で回線デバイスを開いたアプリケーションでのみ使用できます。
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)
// LINECALLINFO (x64 324 / x86 324 バイト)
#pragma pack(push, 1)
typedef struct LINECALLINFO {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD hLine;
DWORD dwLineDeviceID;
DWORD dwAddressID;
DWORD dwBearerMode;
DWORD dwRate;
DWORD dwMediaMode;
DWORD dwAppSpecific;
DWORD dwCallID;
DWORD dwRelatedCallID;
DWORD dwCallParamFlags;
DWORD dwCallStates;
DWORD dwMonitorDigitModes;
DWORD dwMonitorMediaModes;
LINEDIALPARAMS DialParams;
DWORD dwOrigin;
DWORD dwReason;
DWORD dwCompletionID;
DWORD dwNumOwners;
DWORD dwNumMonitors;
DWORD dwCountryCode;
DWORD dwTrunk;
DWORD dwCallerIDFlags;
DWORD dwCallerIDSize;
DWORD dwCallerIDOffset;
DWORD dwCallerIDNameSize;
DWORD dwCallerIDNameOffset;
DWORD dwCalledIDFlags;
DWORD dwCalledIDSize;
DWORD dwCalledIDOffset;
DWORD dwCalledIDNameSize;
DWORD dwCalledIDNameOffset;
DWORD dwConnectedIDFlags;
DWORD dwConnectedIDSize;
DWORD dwConnectedIDOffset;
DWORD dwConnectedIDNameSize;
DWORD dwConnectedIDNameOffset;
DWORD dwRedirectionIDFlags;
DWORD dwRedirectionIDSize;
DWORD dwRedirectionIDOffset;
DWORD dwRedirectionIDNameSize;
DWORD dwRedirectionIDNameOffset;
DWORD dwRedirectingIDFlags;
DWORD dwRedirectingIDSize;
DWORD dwRedirectingIDOffset;
DWORD dwRedirectingIDNameSize;
DWORD dwRedirectingIDNameOffset;
DWORD dwAppNameSize;
DWORD dwAppNameOffset;
DWORD dwDisplayableAddressSize;
DWORD dwDisplayableAddressOffset;
DWORD dwCalledPartySize;
DWORD dwCalledPartyOffset;
DWORD dwCommentSize;
DWORD dwCommentOffset;
DWORD dwDisplaySize;
DWORD dwDisplayOffset;
DWORD dwUserUserInfoSize;
DWORD dwUserUserInfoOffset;
DWORD dwHighLevelCompSize;
DWORD dwHighLevelCompOffset;
DWORD dwLowLevelCompSize;
DWORD dwLowLevelCompOffset;
DWORD dwChargingInfoSize;
DWORD dwChargingInfoOffset;
DWORD dwTerminalModesSize;
DWORD dwTerminalModesOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
DWORD dwCallTreatment;
DWORD dwCallDataSize;
DWORD dwCallDataOffset;
DWORD dwSendingFlowspecSize;
DWORD dwSendingFlowspecOffset;
DWORD dwReceivingFlowspecSize;
DWORD dwReceivingFlowspecOffset;
} LINECALLINFO;
#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 LINECALLINFO
{
public uint dwTotalSize;
public uint dwNeededSize;
public uint dwUsedSize;
public uint hLine;
public uint dwLineDeviceID;
public uint dwAddressID;
public uint dwBearerMode;
public uint dwRate;
public uint dwMediaMode;
public uint dwAppSpecific;
public uint dwCallID;
public uint dwRelatedCallID;
public uint dwCallParamFlags;
public uint dwCallStates;
public uint dwMonitorDigitModes;
public uint dwMonitorMediaModes;
public LINEDIALPARAMS DialParams;
public uint dwOrigin;
public uint dwReason;
public uint dwCompletionID;
public uint dwNumOwners;
public uint dwNumMonitors;
public uint dwCountryCode;
public uint dwTrunk;
public uint dwCallerIDFlags;
public uint dwCallerIDSize;
public uint dwCallerIDOffset;
public uint dwCallerIDNameSize;
public uint dwCallerIDNameOffset;
public uint dwCalledIDFlags;
public uint dwCalledIDSize;
public uint dwCalledIDOffset;
public uint dwCalledIDNameSize;
public uint dwCalledIDNameOffset;
public uint dwConnectedIDFlags;
public uint dwConnectedIDSize;
public uint dwConnectedIDOffset;
public uint dwConnectedIDNameSize;
public uint dwConnectedIDNameOffset;
public uint dwRedirectionIDFlags;
public uint dwRedirectionIDSize;
public uint dwRedirectionIDOffset;
public uint dwRedirectionIDNameSize;
public uint dwRedirectionIDNameOffset;
public uint dwRedirectingIDFlags;
public uint dwRedirectingIDSize;
public uint dwRedirectingIDOffset;
public uint dwRedirectingIDNameSize;
public uint dwRedirectingIDNameOffset;
public uint dwAppNameSize;
public uint dwAppNameOffset;
public uint dwDisplayableAddressSize;
public uint dwDisplayableAddressOffset;
public uint dwCalledPartySize;
public uint dwCalledPartyOffset;
public uint dwCommentSize;
public uint dwCommentOffset;
public uint dwDisplaySize;
public uint dwDisplayOffset;
public uint dwUserUserInfoSize;
public uint dwUserUserInfoOffset;
public uint dwHighLevelCompSize;
public uint dwHighLevelCompOffset;
public uint dwLowLevelCompSize;
public uint dwLowLevelCompOffset;
public uint dwChargingInfoSize;
public uint dwChargingInfoOffset;
public uint dwTerminalModesSize;
public uint dwTerminalModesOffset;
public uint dwDevSpecificSize;
public uint dwDevSpecificOffset;
public uint dwCallTreatment;
public uint dwCallDataSize;
public uint dwCallDataOffset;
public uint dwSendingFlowspecSize;
public uint dwSendingFlowspecOffset;
public uint dwReceivingFlowspecSize;
public uint dwReceivingFlowspecOffset;
}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 LINECALLINFO
Public dwTotalSize As UInteger
Public dwNeededSize As UInteger
Public dwUsedSize As UInteger
Public hLine As UInteger
Public dwLineDeviceID As UInteger
Public dwAddressID As UInteger
Public dwBearerMode As UInteger
Public dwRate As UInteger
Public dwMediaMode As UInteger
Public dwAppSpecific As UInteger
Public dwCallID As UInteger
Public dwRelatedCallID As UInteger
Public dwCallParamFlags As UInteger
Public dwCallStates As UInteger
Public dwMonitorDigitModes As UInteger
Public dwMonitorMediaModes As UInteger
Public DialParams As LINEDIALPARAMS
Public dwOrigin As UInteger
Public dwReason As UInteger
Public dwCompletionID As UInteger
Public dwNumOwners As UInteger
Public dwNumMonitors As UInteger
Public dwCountryCode As UInteger
Public dwTrunk As UInteger
Public dwCallerIDFlags As UInteger
Public dwCallerIDSize As UInteger
Public dwCallerIDOffset As UInteger
Public dwCallerIDNameSize As UInteger
Public dwCallerIDNameOffset As UInteger
Public dwCalledIDFlags As UInteger
Public dwCalledIDSize As UInteger
Public dwCalledIDOffset As UInteger
Public dwCalledIDNameSize As UInteger
Public dwCalledIDNameOffset As UInteger
Public dwConnectedIDFlags As UInteger
Public dwConnectedIDSize As UInteger
Public dwConnectedIDOffset As UInteger
Public dwConnectedIDNameSize As UInteger
Public dwConnectedIDNameOffset As UInteger
Public dwRedirectionIDFlags As UInteger
Public dwRedirectionIDSize As UInteger
Public dwRedirectionIDOffset As UInteger
Public dwRedirectionIDNameSize As UInteger
Public dwRedirectionIDNameOffset As UInteger
Public dwRedirectingIDFlags As UInteger
Public dwRedirectingIDSize As UInteger
Public dwRedirectingIDOffset As UInteger
Public dwRedirectingIDNameSize As UInteger
Public dwRedirectingIDNameOffset As UInteger
Public dwAppNameSize As UInteger
Public dwAppNameOffset 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 dwDisplaySize As UInteger
Public dwDisplayOffset 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 dwChargingInfoSize As UInteger
Public dwChargingInfoOffset As UInteger
Public dwTerminalModesSize As UInteger
Public dwTerminalModesOffset As UInteger
Public dwDevSpecificSize As UInteger
Public dwDevSpecificOffset As UInteger
Public dwCallTreatment As UInteger
Public dwCallDataSize As UInteger
Public dwCallDataOffset As UInteger
Public dwSendingFlowspecSize As UInteger
Public dwSendingFlowspecOffset As UInteger
Public dwReceivingFlowspecSize As UInteger
Public dwReceivingFlowspecOffset 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 LINECALLINFO(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwNeededSize", wintypes.DWORD),
("dwUsedSize", wintypes.DWORD),
("hLine", wintypes.DWORD),
("dwLineDeviceID", wintypes.DWORD),
("dwAddressID", wintypes.DWORD),
("dwBearerMode", wintypes.DWORD),
("dwRate", wintypes.DWORD),
("dwMediaMode", wintypes.DWORD),
("dwAppSpecific", wintypes.DWORD),
("dwCallID", wintypes.DWORD),
("dwRelatedCallID", wintypes.DWORD),
("dwCallParamFlags", wintypes.DWORD),
("dwCallStates", wintypes.DWORD),
("dwMonitorDigitModes", wintypes.DWORD),
("dwMonitorMediaModes", wintypes.DWORD),
("DialParams", LINEDIALPARAMS),
("dwOrigin", wintypes.DWORD),
("dwReason", wintypes.DWORD),
("dwCompletionID", wintypes.DWORD),
("dwNumOwners", wintypes.DWORD),
("dwNumMonitors", wintypes.DWORD),
("dwCountryCode", wintypes.DWORD),
("dwTrunk", wintypes.DWORD),
("dwCallerIDFlags", wintypes.DWORD),
("dwCallerIDSize", wintypes.DWORD),
("dwCallerIDOffset", wintypes.DWORD),
("dwCallerIDNameSize", wintypes.DWORD),
("dwCallerIDNameOffset", wintypes.DWORD),
("dwCalledIDFlags", wintypes.DWORD),
("dwCalledIDSize", wintypes.DWORD),
("dwCalledIDOffset", wintypes.DWORD),
("dwCalledIDNameSize", wintypes.DWORD),
("dwCalledIDNameOffset", wintypes.DWORD),
("dwConnectedIDFlags", wintypes.DWORD),
("dwConnectedIDSize", wintypes.DWORD),
("dwConnectedIDOffset", wintypes.DWORD),
("dwConnectedIDNameSize", wintypes.DWORD),
("dwConnectedIDNameOffset", wintypes.DWORD),
("dwRedirectionIDFlags", wintypes.DWORD),
("dwRedirectionIDSize", wintypes.DWORD),
("dwRedirectionIDOffset", wintypes.DWORD),
("dwRedirectionIDNameSize", wintypes.DWORD),
("dwRedirectionIDNameOffset", wintypes.DWORD),
("dwRedirectingIDFlags", wintypes.DWORD),
("dwRedirectingIDSize", wintypes.DWORD),
("dwRedirectingIDOffset", wintypes.DWORD),
("dwRedirectingIDNameSize", wintypes.DWORD),
("dwRedirectingIDNameOffset", wintypes.DWORD),
("dwAppNameSize", wintypes.DWORD),
("dwAppNameOffset", wintypes.DWORD),
("dwDisplayableAddressSize", wintypes.DWORD),
("dwDisplayableAddressOffset", wintypes.DWORD),
("dwCalledPartySize", wintypes.DWORD),
("dwCalledPartyOffset", wintypes.DWORD),
("dwCommentSize", wintypes.DWORD),
("dwCommentOffset", wintypes.DWORD),
("dwDisplaySize", wintypes.DWORD),
("dwDisplayOffset", wintypes.DWORD),
("dwUserUserInfoSize", wintypes.DWORD),
("dwUserUserInfoOffset", wintypes.DWORD),
("dwHighLevelCompSize", wintypes.DWORD),
("dwHighLevelCompOffset", wintypes.DWORD),
("dwLowLevelCompSize", wintypes.DWORD),
("dwLowLevelCompOffset", wintypes.DWORD),
("dwChargingInfoSize", wintypes.DWORD),
("dwChargingInfoOffset", wintypes.DWORD),
("dwTerminalModesSize", wintypes.DWORD),
("dwTerminalModesOffset", wintypes.DWORD),
("dwDevSpecificSize", wintypes.DWORD),
("dwDevSpecificOffset", wintypes.DWORD),
("dwCallTreatment", wintypes.DWORD),
("dwCallDataSize", wintypes.DWORD),
("dwCallDataOffset", wintypes.DWORD),
("dwSendingFlowspecSize", wintypes.DWORD),
("dwSendingFlowspecOffset", wintypes.DWORD),
("dwReceivingFlowspecSize", wintypes.DWORD),
("dwReceivingFlowspecOffset", 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 LINECALLINFO {
pub dwTotalSize: u32,
pub dwNeededSize: u32,
pub dwUsedSize: u32,
pub hLine: u32,
pub dwLineDeviceID: u32,
pub dwAddressID: u32,
pub dwBearerMode: u32,
pub dwRate: u32,
pub dwMediaMode: u32,
pub dwAppSpecific: u32,
pub dwCallID: u32,
pub dwRelatedCallID: u32,
pub dwCallParamFlags: u32,
pub dwCallStates: u32,
pub dwMonitorDigitModes: u32,
pub dwMonitorMediaModes: u32,
pub DialParams: LINEDIALPARAMS,
pub dwOrigin: u32,
pub dwReason: u32,
pub dwCompletionID: u32,
pub dwNumOwners: u32,
pub dwNumMonitors: u32,
pub dwCountryCode: u32,
pub dwTrunk: u32,
pub dwCallerIDFlags: u32,
pub dwCallerIDSize: u32,
pub dwCallerIDOffset: u32,
pub dwCallerIDNameSize: u32,
pub dwCallerIDNameOffset: u32,
pub dwCalledIDFlags: u32,
pub dwCalledIDSize: u32,
pub dwCalledIDOffset: u32,
pub dwCalledIDNameSize: u32,
pub dwCalledIDNameOffset: u32,
pub dwConnectedIDFlags: u32,
pub dwConnectedIDSize: u32,
pub dwConnectedIDOffset: u32,
pub dwConnectedIDNameSize: u32,
pub dwConnectedIDNameOffset: u32,
pub dwRedirectionIDFlags: u32,
pub dwRedirectionIDSize: u32,
pub dwRedirectionIDOffset: u32,
pub dwRedirectionIDNameSize: u32,
pub dwRedirectionIDNameOffset: u32,
pub dwRedirectingIDFlags: u32,
pub dwRedirectingIDSize: u32,
pub dwRedirectingIDOffset: u32,
pub dwRedirectingIDNameSize: u32,
pub dwRedirectingIDNameOffset: u32,
pub dwAppNameSize: u32,
pub dwAppNameOffset: u32,
pub dwDisplayableAddressSize: u32,
pub dwDisplayableAddressOffset: u32,
pub dwCalledPartySize: u32,
pub dwCalledPartyOffset: u32,
pub dwCommentSize: u32,
pub dwCommentOffset: u32,
pub dwDisplaySize: u32,
pub dwDisplayOffset: u32,
pub dwUserUserInfoSize: u32,
pub dwUserUserInfoOffset: u32,
pub dwHighLevelCompSize: u32,
pub dwHighLevelCompOffset: u32,
pub dwLowLevelCompSize: u32,
pub dwLowLevelCompOffset: u32,
pub dwChargingInfoSize: u32,
pub dwChargingInfoOffset: u32,
pub dwTerminalModesSize: u32,
pub dwTerminalModesOffset: u32,
pub dwDevSpecificSize: u32,
pub dwDevSpecificOffset: u32,
pub dwCallTreatment: u32,
pub dwCallDataSize: u32,
pub dwCallDataOffset: u32,
pub dwSendingFlowspecSize: u32,
pub dwSendingFlowspecOffset: u32,
pub dwReceivingFlowspecSize: u32,
pub dwReceivingFlowspecOffset: u32,
}import "golang.org/x/sys/windows"
type LINEDIALPARAMS struct {
dwDialPause uint32
dwDialSpeed uint32
dwDigitDuration uint32
dwWaitForDialtone uint32
}
type LINECALLINFO struct {
dwTotalSize uint32
dwNeededSize uint32
dwUsedSize uint32
hLine uint32
dwLineDeviceID uint32
dwAddressID uint32
dwBearerMode uint32
dwRate uint32
dwMediaMode uint32
dwAppSpecific uint32
dwCallID uint32
dwRelatedCallID uint32
dwCallParamFlags uint32
dwCallStates uint32
dwMonitorDigitModes uint32
dwMonitorMediaModes uint32
DialParams LINEDIALPARAMS
dwOrigin uint32
dwReason uint32
dwCompletionID uint32
dwNumOwners uint32
dwNumMonitors uint32
dwCountryCode uint32
dwTrunk uint32
dwCallerIDFlags uint32
dwCallerIDSize uint32
dwCallerIDOffset uint32
dwCallerIDNameSize uint32
dwCallerIDNameOffset uint32
dwCalledIDFlags uint32
dwCalledIDSize uint32
dwCalledIDOffset uint32
dwCalledIDNameSize uint32
dwCalledIDNameOffset uint32
dwConnectedIDFlags uint32
dwConnectedIDSize uint32
dwConnectedIDOffset uint32
dwConnectedIDNameSize uint32
dwConnectedIDNameOffset uint32
dwRedirectionIDFlags uint32
dwRedirectionIDSize uint32
dwRedirectionIDOffset uint32
dwRedirectionIDNameSize uint32
dwRedirectionIDNameOffset uint32
dwRedirectingIDFlags uint32
dwRedirectingIDSize uint32
dwRedirectingIDOffset uint32
dwRedirectingIDNameSize uint32
dwRedirectingIDNameOffset uint32
dwAppNameSize uint32
dwAppNameOffset uint32
dwDisplayableAddressSize uint32
dwDisplayableAddressOffset uint32
dwCalledPartySize uint32
dwCalledPartyOffset uint32
dwCommentSize uint32
dwCommentOffset uint32
dwDisplaySize uint32
dwDisplayOffset uint32
dwUserUserInfoSize uint32
dwUserUserInfoOffset uint32
dwHighLevelCompSize uint32
dwHighLevelCompOffset uint32
dwLowLevelCompSize uint32
dwLowLevelCompOffset uint32
dwChargingInfoSize uint32
dwChargingInfoOffset uint32
dwTerminalModesSize uint32
dwTerminalModesOffset uint32
dwDevSpecificSize uint32
dwDevSpecificOffset uint32
dwCallTreatment uint32
dwCallDataSize uint32
dwCallDataOffset uint32
dwSendingFlowspecSize uint32
dwSendingFlowspecOffset uint32
dwReceivingFlowspecSize uint32
dwReceivingFlowspecOffset uint32
}type
LINEDIALPARAMS = packed record
dwDialPause: DWORD;
dwDialSpeed: DWORD;
dwDigitDuration: DWORD;
dwWaitForDialtone: DWORD;
end;
LINECALLINFO = packed record
dwTotalSize: DWORD;
dwNeededSize: DWORD;
dwUsedSize: DWORD;
hLine: DWORD;
dwLineDeviceID: DWORD;
dwAddressID: DWORD;
dwBearerMode: DWORD;
dwRate: DWORD;
dwMediaMode: DWORD;
dwAppSpecific: DWORD;
dwCallID: DWORD;
dwRelatedCallID: DWORD;
dwCallParamFlags: DWORD;
dwCallStates: DWORD;
dwMonitorDigitModes: DWORD;
dwMonitorMediaModes: DWORD;
DialParams: LINEDIALPARAMS;
dwOrigin: DWORD;
dwReason: DWORD;
dwCompletionID: DWORD;
dwNumOwners: DWORD;
dwNumMonitors: DWORD;
dwCountryCode: DWORD;
dwTrunk: DWORD;
dwCallerIDFlags: DWORD;
dwCallerIDSize: DWORD;
dwCallerIDOffset: DWORD;
dwCallerIDNameSize: DWORD;
dwCallerIDNameOffset: DWORD;
dwCalledIDFlags: DWORD;
dwCalledIDSize: DWORD;
dwCalledIDOffset: DWORD;
dwCalledIDNameSize: DWORD;
dwCalledIDNameOffset: DWORD;
dwConnectedIDFlags: DWORD;
dwConnectedIDSize: DWORD;
dwConnectedIDOffset: DWORD;
dwConnectedIDNameSize: DWORD;
dwConnectedIDNameOffset: DWORD;
dwRedirectionIDFlags: DWORD;
dwRedirectionIDSize: DWORD;
dwRedirectionIDOffset: DWORD;
dwRedirectionIDNameSize: DWORD;
dwRedirectionIDNameOffset: DWORD;
dwRedirectingIDFlags: DWORD;
dwRedirectingIDSize: DWORD;
dwRedirectingIDOffset: DWORD;
dwRedirectingIDNameSize: DWORD;
dwRedirectingIDNameOffset: DWORD;
dwAppNameSize: DWORD;
dwAppNameOffset: DWORD;
dwDisplayableAddressSize: DWORD;
dwDisplayableAddressOffset: DWORD;
dwCalledPartySize: DWORD;
dwCalledPartyOffset: DWORD;
dwCommentSize: DWORD;
dwCommentOffset: DWORD;
dwDisplaySize: DWORD;
dwDisplayOffset: DWORD;
dwUserUserInfoSize: DWORD;
dwUserUserInfoOffset: DWORD;
dwHighLevelCompSize: DWORD;
dwHighLevelCompOffset: DWORD;
dwLowLevelCompSize: DWORD;
dwLowLevelCompOffset: DWORD;
dwChargingInfoSize: DWORD;
dwChargingInfoOffset: DWORD;
dwTerminalModesSize: DWORD;
dwTerminalModesOffset: DWORD;
dwDevSpecificSize: DWORD;
dwDevSpecificOffset: DWORD;
dwCallTreatment: DWORD;
dwCallDataSize: DWORD;
dwCallDataOffset: DWORD;
dwSendingFlowspecSize: DWORD;
dwSendingFlowspecOffset: DWORD;
dwReceivingFlowspecSize: DWORD;
dwReceivingFlowspecOffset: DWORD;
end;const LINEDIALPARAMS = extern struct {
dwDialPause: u32,
dwDialSpeed: u32,
dwDigitDuration: u32,
dwWaitForDialtone: u32,
};
const LINECALLINFO = extern struct {
dwTotalSize: u32,
dwNeededSize: u32,
dwUsedSize: u32,
hLine: u32,
dwLineDeviceID: u32,
dwAddressID: u32,
dwBearerMode: u32,
dwRate: u32,
dwMediaMode: u32,
dwAppSpecific: u32,
dwCallID: u32,
dwRelatedCallID: u32,
dwCallParamFlags: u32,
dwCallStates: u32,
dwMonitorDigitModes: u32,
dwMonitorMediaModes: u32,
DialParams: LINEDIALPARAMS,
dwOrigin: u32,
dwReason: u32,
dwCompletionID: u32,
dwNumOwners: u32,
dwNumMonitors: u32,
dwCountryCode: u32,
dwTrunk: u32,
dwCallerIDFlags: u32,
dwCallerIDSize: u32,
dwCallerIDOffset: u32,
dwCallerIDNameSize: u32,
dwCallerIDNameOffset: u32,
dwCalledIDFlags: u32,
dwCalledIDSize: u32,
dwCalledIDOffset: u32,
dwCalledIDNameSize: u32,
dwCalledIDNameOffset: u32,
dwConnectedIDFlags: u32,
dwConnectedIDSize: u32,
dwConnectedIDOffset: u32,
dwConnectedIDNameSize: u32,
dwConnectedIDNameOffset: u32,
dwRedirectionIDFlags: u32,
dwRedirectionIDSize: u32,
dwRedirectionIDOffset: u32,
dwRedirectionIDNameSize: u32,
dwRedirectionIDNameOffset: u32,
dwRedirectingIDFlags: u32,
dwRedirectingIDSize: u32,
dwRedirectingIDOffset: u32,
dwRedirectingIDNameSize: u32,
dwRedirectingIDNameOffset: u32,
dwAppNameSize: u32,
dwAppNameOffset: u32,
dwDisplayableAddressSize: u32,
dwDisplayableAddressOffset: u32,
dwCalledPartySize: u32,
dwCalledPartyOffset: u32,
dwCommentSize: u32,
dwCommentOffset: u32,
dwDisplaySize: u32,
dwDisplayOffset: u32,
dwUserUserInfoSize: u32,
dwUserUserInfoOffset: u32,
dwHighLevelCompSize: u32,
dwHighLevelCompOffset: u32,
dwLowLevelCompSize: u32,
dwLowLevelCompOffset: u32,
dwChargingInfoSize: u32,
dwChargingInfoOffset: u32,
dwTerminalModesSize: u32,
dwTerminalModesOffset: u32,
dwDevSpecificSize: u32,
dwDevSpecificOffset: u32,
dwCallTreatment: u32,
dwCallDataSize: u32,
dwCallDataOffset: u32,
dwSendingFlowspecSize: u32,
dwSendingFlowspecOffset: u32,
dwReceivingFlowspecSize: u32,
dwReceivingFlowspecOffset: u32,
};type
LINEDIALPARAMS {.packed.} = object
dwDialPause: uint32
dwDialSpeed: uint32
dwDigitDuration: uint32
dwWaitForDialtone: uint32
LINECALLINFO {.packed.} = object
dwTotalSize: uint32
dwNeededSize: uint32
dwUsedSize: uint32
hLine: uint32
dwLineDeviceID: uint32
dwAddressID: uint32
dwBearerMode: uint32
dwRate: uint32
dwMediaMode: uint32
dwAppSpecific: uint32
dwCallID: uint32
dwRelatedCallID: uint32
dwCallParamFlags: uint32
dwCallStates: uint32
dwMonitorDigitModes: uint32
dwMonitorMediaModes: uint32
DialParams: LINEDIALPARAMS
dwOrigin: uint32
dwReason: uint32
dwCompletionID: uint32
dwNumOwners: uint32
dwNumMonitors: uint32
dwCountryCode: uint32
dwTrunk: uint32
dwCallerIDFlags: uint32
dwCallerIDSize: uint32
dwCallerIDOffset: uint32
dwCallerIDNameSize: uint32
dwCallerIDNameOffset: uint32
dwCalledIDFlags: uint32
dwCalledIDSize: uint32
dwCalledIDOffset: uint32
dwCalledIDNameSize: uint32
dwCalledIDNameOffset: uint32
dwConnectedIDFlags: uint32
dwConnectedIDSize: uint32
dwConnectedIDOffset: uint32
dwConnectedIDNameSize: uint32
dwConnectedIDNameOffset: uint32
dwRedirectionIDFlags: uint32
dwRedirectionIDSize: uint32
dwRedirectionIDOffset: uint32
dwRedirectionIDNameSize: uint32
dwRedirectionIDNameOffset: uint32
dwRedirectingIDFlags: uint32
dwRedirectingIDSize: uint32
dwRedirectingIDOffset: uint32
dwRedirectingIDNameSize: uint32
dwRedirectingIDNameOffset: uint32
dwAppNameSize: uint32
dwAppNameOffset: uint32
dwDisplayableAddressSize: uint32
dwDisplayableAddressOffset: uint32
dwCalledPartySize: uint32
dwCalledPartyOffset: uint32
dwCommentSize: uint32
dwCommentOffset: uint32
dwDisplaySize: uint32
dwDisplayOffset: uint32
dwUserUserInfoSize: uint32
dwUserUserInfoOffset: uint32
dwHighLevelCompSize: uint32
dwHighLevelCompOffset: uint32
dwLowLevelCompSize: uint32
dwLowLevelCompOffset: uint32
dwChargingInfoSize: uint32
dwChargingInfoOffset: uint32
dwTerminalModesSize: uint32
dwTerminalModesOffset: uint32
dwDevSpecificSize: uint32
dwDevSpecificOffset: uint32
dwCallTreatment: uint32
dwCallDataSize: uint32
dwCallDataOffset: uint32
dwSendingFlowspecSize: uint32
dwSendingFlowspecOffset: uint32
dwReceivingFlowspecSize: uint32
dwReceivingFlowspecOffset: uint32align(1)
struct LINEDIALPARAMS
{
uint dwDialPause;
uint dwDialSpeed;
uint dwDigitDuration;
uint dwWaitForDialtone;
}
align(1)
struct LINECALLINFO
{
uint dwTotalSize;
uint dwNeededSize;
uint dwUsedSize;
uint hLine;
uint dwLineDeviceID;
uint dwAddressID;
uint dwBearerMode;
uint dwRate;
uint dwMediaMode;
uint dwAppSpecific;
uint dwCallID;
uint dwRelatedCallID;
uint dwCallParamFlags;
uint dwCallStates;
uint dwMonitorDigitModes;
uint dwMonitorMediaModes;
LINEDIALPARAMS DialParams;
uint dwOrigin;
uint dwReason;
uint dwCompletionID;
uint dwNumOwners;
uint dwNumMonitors;
uint dwCountryCode;
uint dwTrunk;
uint dwCallerIDFlags;
uint dwCallerIDSize;
uint dwCallerIDOffset;
uint dwCallerIDNameSize;
uint dwCallerIDNameOffset;
uint dwCalledIDFlags;
uint dwCalledIDSize;
uint dwCalledIDOffset;
uint dwCalledIDNameSize;
uint dwCalledIDNameOffset;
uint dwConnectedIDFlags;
uint dwConnectedIDSize;
uint dwConnectedIDOffset;
uint dwConnectedIDNameSize;
uint dwConnectedIDNameOffset;
uint dwRedirectionIDFlags;
uint dwRedirectionIDSize;
uint dwRedirectionIDOffset;
uint dwRedirectionIDNameSize;
uint dwRedirectionIDNameOffset;
uint dwRedirectingIDFlags;
uint dwRedirectingIDSize;
uint dwRedirectingIDOffset;
uint dwRedirectingIDNameSize;
uint dwRedirectingIDNameOffset;
uint dwAppNameSize;
uint dwAppNameOffset;
uint dwDisplayableAddressSize;
uint dwDisplayableAddressOffset;
uint dwCalledPartySize;
uint dwCalledPartyOffset;
uint dwCommentSize;
uint dwCommentOffset;
uint dwDisplaySize;
uint dwDisplayOffset;
uint dwUserUserInfoSize;
uint dwUserUserInfoOffset;
uint dwHighLevelCompSize;
uint dwHighLevelCompOffset;
uint dwLowLevelCompSize;
uint dwLowLevelCompOffset;
uint dwChargingInfoSize;
uint dwChargingInfoOffset;
uint dwTerminalModesSize;
uint dwTerminalModesOffset;
uint dwDevSpecificSize;
uint dwDevSpecificOffset;
uint dwCallTreatment;
uint dwCallDataSize;
uint dwCallDataOffset;
uint dwSendingFlowspecSize;
uint dwSendingFlowspecOffset;
uint dwReceivingFlowspecSize;
uint dwReceivingFlowspecOffset;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINECALLINFO サイズ: 324 バイト(x64)
dim st, 81 ; 4byte整数×81(構造体サイズ 324 / 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 も可)
; hLine : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwLineDeviceID : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwAddressID : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwBearerMode : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwRate : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwMediaMode : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwAppSpecific : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwCallID : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwRelatedCallID : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwCallParamFlags : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwCallStates : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; dwMonitorDigitModes : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; dwMonitorMediaModes : DWORD (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; DialParams : LINEDIALPARAMS (+64, 16byte) varptr(st)+64 を基点に操作(16byte:入れ子/配列)
; dwOrigin : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; dwReason : DWORD (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; dwCompletionID : DWORD (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; dwNumOwners : DWORD (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; dwNumMonitors : DWORD (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; dwCountryCode : DWORD (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; dwTrunk : DWORD (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; dwCallerIDFlags : DWORD (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; dwCallerIDSize : DWORD (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; dwCallerIDOffset : DWORD (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; dwCallerIDNameSize : DWORD (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; dwCallerIDNameOffset : DWORD (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; dwCalledIDFlags : DWORD (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; dwCalledIDSize : DWORD (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; dwCalledIDOffset : DWORD (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; dwCalledIDNameSize : DWORD (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; dwCalledIDNameOffset : DWORD (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; dwConnectedIDFlags : DWORD (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; dwConnectedIDSize : DWORD (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; dwConnectedIDOffset : DWORD (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; dwConnectedIDNameSize : DWORD (+160, 4byte) st.40 = 値 / 値 = st.40 (lpoke/lpeek も可)
; dwConnectedIDNameOffset : DWORD (+164, 4byte) st.41 = 値 / 値 = st.41 (lpoke/lpeek も可)
; dwRedirectionIDFlags : DWORD (+168, 4byte) st.42 = 値 / 値 = st.42 (lpoke/lpeek も可)
; dwRedirectionIDSize : DWORD (+172, 4byte) st.43 = 値 / 値 = st.43 (lpoke/lpeek も可)
; dwRedirectionIDOffset : DWORD (+176, 4byte) st.44 = 値 / 値 = st.44 (lpoke/lpeek も可)
; dwRedirectionIDNameSize : DWORD (+180, 4byte) st.45 = 値 / 値 = st.45 (lpoke/lpeek も可)
; dwRedirectionIDNameOffset : DWORD (+184, 4byte) st.46 = 値 / 値 = st.46 (lpoke/lpeek も可)
; dwRedirectingIDFlags : DWORD (+188, 4byte) st.47 = 値 / 値 = st.47 (lpoke/lpeek も可)
; dwRedirectingIDSize : DWORD (+192, 4byte) st.48 = 値 / 値 = st.48 (lpoke/lpeek も可)
; dwRedirectingIDOffset : DWORD (+196, 4byte) st.49 = 値 / 値 = st.49 (lpoke/lpeek も可)
; dwRedirectingIDNameSize : DWORD (+200, 4byte) st.50 = 値 / 値 = st.50 (lpoke/lpeek も可)
; dwRedirectingIDNameOffset : DWORD (+204, 4byte) st.51 = 値 / 値 = st.51 (lpoke/lpeek も可)
; dwAppNameSize : DWORD (+208, 4byte) st.52 = 値 / 値 = st.52 (lpoke/lpeek も可)
; dwAppNameOffset : DWORD (+212, 4byte) st.53 = 値 / 値 = st.53 (lpoke/lpeek も可)
; dwDisplayableAddressSize : DWORD (+216, 4byte) st.54 = 値 / 値 = st.54 (lpoke/lpeek も可)
; dwDisplayableAddressOffset : DWORD (+220, 4byte) st.55 = 値 / 値 = st.55 (lpoke/lpeek も可)
; dwCalledPartySize : DWORD (+224, 4byte) st.56 = 値 / 値 = st.56 (lpoke/lpeek も可)
; dwCalledPartyOffset : DWORD (+228, 4byte) st.57 = 値 / 値 = st.57 (lpoke/lpeek も可)
; dwCommentSize : DWORD (+232, 4byte) st.58 = 値 / 値 = st.58 (lpoke/lpeek も可)
; dwCommentOffset : DWORD (+236, 4byte) st.59 = 値 / 値 = st.59 (lpoke/lpeek も可)
; dwDisplaySize : DWORD (+240, 4byte) st.60 = 値 / 値 = st.60 (lpoke/lpeek も可)
; dwDisplayOffset : DWORD (+244, 4byte) st.61 = 値 / 値 = st.61 (lpoke/lpeek も可)
; dwUserUserInfoSize : DWORD (+248, 4byte) st.62 = 値 / 値 = st.62 (lpoke/lpeek も可)
; dwUserUserInfoOffset : DWORD (+252, 4byte) st.63 = 値 / 値 = st.63 (lpoke/lpeek も可)
; dwHighLevelCompSize : DWORD (+256, 4byte) st.64 = 値 / 値 = st.64 (lpoke/lpeek も可)
; dwHighLevelCompOffset : DWORD (+260, 4byte) st.65 = 値 / 値 = st.65 (lpoke/lpeek も可)
; dwLowLevelCompSize : DWORD (+264, 4byte) st.66 = 値 / 値 = st.66 (lpoke/lpeek も可)
; dwLowLevelCompOffset : DWORD (+268, 4byte) st.67 = 値 / 値 = st.67 (lpoke/lpeek も可)
; dwChargingInfoSize : DWORD (+272, 4byte) st.68 = 値 / 値 = st.68 (lpoke/lpeek も可)
; dwChargingInfoOffset : DWORD (+276, 4byte) st.69 = 値 / 値 = st.69 (lpoke/lpeek も可)
; dwTerminalModesSize : DWORD (+280, 4byte) st.70 = 値 / 値 = st.70 (lpoke/lpeek も可)
; dwTerminalModesOffset : DWORD (+284, 4byte) st.71 = 値 / 値 = st.71 (lpoke/lpeek も可)
; dwDevSpecificSize : DWORD (+288, 4byte) st.72 = 値 / 値 = st.72 (lpoke/lpeek も可)
; dwDevSpecificOffset : DWORD (+292, 4byte) st.73 = 値 / 値 = st.73 (lpoke/lpeek も可)
; dwCallTreatment : DWORD (+296, 4byte) st.74 = 値 / 値 = st.74 (lpoke/lpeek も可)
; dwCallDataSize : DWORD (+300, 4byte) st.75 = 値 / 値 = st.75 (lpoke/lpeek も可)
; dwCallDataOffset : DWORD (+304, 4byte) st.76 = 値 / 値 = st.76 (lpoke/lpeek も可)
; dwSendingFlowspecSize : DWORD (+308, 4byte) st.77 = 値 / 値 = st.77 (lpoke/lpeek も可)
; dwSendingFlowspecOffset : DWORD (+312, 4byte) st.78 = 値 / 値 = st.78 (lpoke/lpeek も可)
; dwReceivingFlowspecSize : DWORD (+316, 4byte) st.79 = 値 / 値 = st.79 (lpoke/lpeek も可)
; dwReceivingFlowspecOffset : DWORD (+320, 4byte) st.80 = 値 / 値 = st.80 (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 LINECALLINFO, pack=1
#field int dwTotalSize
#field int dwNeededSize
#field int dwUsedSize
#field int hLine
#field int dwLineDeviceID
#field int dwAddressID
#field int dwBearerMode
#field int dwRate
#field int dwMediaMode
#field int dwAppSpecific
#field int dwCallID
#field int dwRelatedCallID
#field int dwCallParamFlags
#field int dwCallStates
#field int dwMonitorDigitModes
#field int dwMonitorMediaModes
#field LINEDIALPARAMS DialParams
#field int dwOrigin
#field int dwReason
#field int dwCompletionID
#field int dwNumOwners
#field int dwNumMonitors
#field int dwCountryCode
#field int dwTrunk
#field int dwCallerIDFlags
#field int dwCallerIDSize
#field int dwCallerIDOffset
#field int dwCallerIDNameSize
#field int dwCallerIDNameOffset
#field int dwCalledIDFlags
#field int dwCalledIDSize
#field int dwCalledIDOffset
#field int dwCalledIDNameSize
#field int dwCalledIDNameOffset
#field int dwConnectedIDFlags
#field int dwConnectedIDSize
#field int dwConnectedIDOffset
#field int dwConnectedIDNameSize
#field int dwConnectedIDNameOffset
#field int dwRedirectionIDFlags
#field int dwRedirectionIDSize
#field int dwRedirectionIDOffset
#field int dwRedirectionIDNameSize
#field int dwRedirectionIDNameOffset
#field int dwRedirectingIDFlags
#field int dwRedirectingIDSize
#field int dwRedirectingIDOffset
#field int dwRedirectingIDNameSize
#field int dwRedirectingIDNameOffset
#field int dwAppNameSize
#field int dwAppNameOffset
#field int dwDisplayableAddressSize
#field int dwDisplayableAddressOffset
#field int dwCalledPartySize
#field int dwCalledPartyOffset
#field int dwCommentSize
#field int dwCommentOffset
#field int dwDisplaySize
#field int dwDisplayOffset
#field int dwUserUserInfoSize
#field int dwUserUserInfoOffset
#field int dwHighLevelCompSize
#field int dwHighLevelCompOffset
#field int dwLowLevelCompSize
#field int dwLowLevelCompOffset
#field int dwChargingInfoSize
#field int dwChargingInfoOffset
#field int dwTerminalModesSize
#field int dwTerminalModesOffset
#field int dwDevSpecificSize
#field int dwDevSpecificOffset
#field int dwCallTreatment
#field int dwCallDataSize
#field int dwCallDataOffset
#field int dwSendingFlowspecSize
#field int dwSendingFlowspecOffset
#field int dwReceivingFlowspecSize
#field int dwReceivingFlowspecOffset
#endstruct
stdim st, LINECALLINFO ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize