ホーム › Devices.Tapi › LINETRANSLATEOUTPUT
LINETRANSLATEOUTPUT
構造体サイズ=各フィールドのバイト数(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 | このデータ構造のうち、有用な情報が含まれている部分のサイズ (バイト単位)。 |
| dwDialableStringSize | DWORD | 4 | +12 | +12 | 終端の NULL を含む、ダイヤル可能な文字列のサイズ (バイト単位)。 |
| dwDialableStringOffset | DWORD | 4 | +16 | +16 | この構造体の先頭から、 lineMakeCall、 lineDial、またはダイヤル可能な文字列を必要とするその他の関数に渡すことができる変換後の出力までのオフセットです。出力は常に null で終わる文字列です。名前やサブアドレスなどの付随的なフィールドは、入力文字列に含まれていた場合、この出力文字列にも含まれます。この文字列には、コーリング カード番号などの非公開情報が含まれる場合があります。権限のない人物の目に不用意に触れることを防ぐため、ユーザーに表示しないでください。このフィールドのサイズは dwDialableStringSize で指定されます。 |
| dwDisplayableStringSize | DWORD | 4 | +20 | +20 | ユーザーに表示できる変換後の出力のサイズ。null 終端文字を含む、バイト単位です。 |
| dwDisplayableStringOffset | DWORD | 4 | +24 | +24 | 確認のためにユーザーに表示できる変換後の出力へのオフセットです。これは DialableString と同一ですが、コーリング カードの数字が角かっこで囲まれたカードのフレンドリ名 (たとえば "[AT&T Card]") に置き換えられ、名前やサブアドレスなどの付随的なフィールドが削除されている点が異なります。この文字列は通話状態のダイアログ ボックスで公に表示される可能性があるため、dwDisplayableStringOffset には適切なメッセージを使用してください。この情報は通話ログに含めるのにも適しています。このフィールドのサイズは dwDisplayableStringSize で指定されます。 |
| dwCurrentCountry | DWORD | 4 | +28 | +28 | CurrentLocation に構成されている国または地域のコードです。この値は、アプリケーションによる特定のユーザー インターフェイス要素の表示制御や、ローカルの呼出進行音の検出、その他の目的に使用できます。 |
| dwDestCountry | DWORD | 4 | +32 | +32 | 変換されたアドレスの宛先の国/地域コードです。この値は lineMakeCall やその他のダイヤル関数の dwCountryCode パラメーターに渡すことができます (これにより、話中音などの宛先の国/地域の呼出進行音が適切に検出されます)。 lineTranslateAddress に渡された宛先アドレスが正規形式でない場合、このフィールドは 0 に設定されます。 |
| dwTranslateResults | DWORD | 4 | +36 | +36 | 変換処理から得られる情報で、アプリケーションがユーザー インターフェイス要素を提示する際に役立ちます。このフィールドは LINETRANSLATERESULT_ 定数のいずれかを使用します。 |
公式ドキュメント
LINETRANSLATEOUTPUT 構造体は、アドレス変換の結果を記述します。 lineTranslateAddress 関数はこの構造体を使用します。
解説(Remarks)
この構造体は拡張できません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#include <windows.h>
// LINETRANSLATEOUTPUT (x64 40 / x86 40 バイト)
#pragma pack(push, 1)
typedef struct LINETRANSLATEOUTPUT {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwDialableStringSize;
DWORD dwDialableStringOffset;
DWORD dwDisplayableStringSize;
DWORD dwDisplayableStringOffset;
DWORD dwCurrentCountry;
DWORD dwDestCountry;
DWORD dwTranslateResults;
} LINETRANSLATEOUTPUT;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINETRANSLATEOUTPUT
{
public uint dwTotalSize;
public uint dwNeededSize;
public uint dwUsedSize;
public uint dwDialableStringSize;
public uint dwDialableStringOffset;
public uint dwDisplayableStringSize;
public uint dwDisplayableStringOffset;
public uint dwCurrentCountry;
public uint dwDestCountry;
public uint dwTranslateResults;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINETRANSLATEOUTPUT
Public dwTotalSize As UInteger
Public dwNeededSize As UInteger
Public dwUsedSize As UInteger
Public dwDialableStringSize As UInteger
Public dwDialableStringOffset As UInteger
Public dwDisplayableStringSize As UInteger
Public dwDisplayableStringOffset As UInteger
Public dwCurrentCountry As UInteger
Public dwDestCountry As UInteger
Public dwTranslateResults As UInteger
End Structureimport ctypes
from ctypes import wintypes
class LINETRANSLATEOUTPUT(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwNeededSize", wintypes.DWORD),
("dwUsedSize", wintypes.DWORD),
("dwDialableStringSize", wintypes.DWORD),
("dwDialableStringOffset", wintypes.DWORD),
("dwDisplayableStringSize", wintypes.DWORD),
("dwDisplayableStringOffset", wintypes.DWORD),
("dwCurrentCountry", wintypes.DWORD),
("dwDestCountry", wintypes.DWORD),
("dwTranslateResults", wintypes.DWORD),
]#[repr(C, packed(1))]
pub struct LINETRANSLATEOUTPUT {
pub dwTotalSize: u32,
pub dwNeededSize: u32,
pub dwUsedSize: u32,
pub dwDialableStringSize: u32,
pub dwDialableStringOffset: u32,
pub dwDisplayableStringSize: u32,
pub dwDisplayableStringOffset: u32,
pub dwCurrentCountry: u32,
pub dwDestCountry: u32,
pub dwTranslateResults: u32,
}import "golang.org/x/sys/windows"
type LINETRANSLATEOUTPUT struct {
dwTotalSize uint32
dwNeededSize uint32
dwUsedSize uint32
dwDialableStringSize uint32
dwDialableStringOffset uint32
dwDisplayableStringSize uint32
dwDisplayableStringOffset uint32
dwCurrentCountry uint32
dwDestCountry uint32
dwTranslateResults uint32
}type
LINETRANSLATEOUTPUT = packed record
dwTotalSize: DWORD;
dwNeededSize: DWORD;
dwUsedSize: DWORD;
dwDialableStringSize: DWORD;
dwDialableStringOffset: DWORD;
dwDisplayableStringSize: DWORD;
dwDisplayableStringOffset: DWORD;
dwCurrentCountry: DWORD;
dwDestCountry: DWORD;
dwTranslateResults: DWORD;
end;const LINETRANSLATEOUTPUT = extern struct {
dwTotalSize: u32,
dwNeededSize: u32,
dwUsedSize: u32,
dwDialableStringSize: u32,
dwDialableStringOffset: u32,
dwDisplayableStringSize: u32,
dwDisplayableStringOffset: u32,
dwCurrentCountry: u32,
dwDestCountry: u32,
dwTranslateResults: u32,
};type
LINETRANSLATEOUTPUT {.packed.} = object
dwTotalSize: uint32
dwNeededSize: uint32
dwUsedSize: uint32
dwDialableStringSize: uint32
dwDialableStringOffset: uint32
dwDisplayableStringSize: uint32
dwDisplayableStringOffset: uint32
dwCurrentCountry: uint32
dwDestCountry: uint32
dwTranslateResults: uint32align(1)
struct LINETRANSLATEOUTPUT
{
uint dwTotalSize;
uint dwNeededSize;
uint dwUsedSize;
uint dwDialableStringSize;
uint dwDialableStringOffset;
uint dwDisplayableStringSize;
uint dwDisplayableStringOffset;
uint dwCurrentCountry;
uint dwDestCountry;
uint dwTranslateResults;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINETRANSLATEOUTPUT サイズ: 40 バイト(x64)
dim st, 10 ; 4byte整数×10(構造体サイズ 40 / 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 も可)
; dwDialableStringSize : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwDialableStringOffset : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwDisplayableStringSize : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwDisplayableStringOffset : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwCurrentCountry : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwDestCountry : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwTranslateResults : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global LINETRANSLATEOUTPUT, pack=1
#field int dwTotalSize
#field int dwNeededSize
#field int dwUsedSize
#field int dwDialableStringSize
#field int dwDialableStringOffset
#field int dwDisplayableStringSize
#field int dwDisplayableStringOffset
#field int dwCurrentCountry
#field int dwDestCountry
#field int dwTranslateResults
#endstruct
stdim st, LINETRANSLATEOUTPUT ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize