ホーム › Devices.Tapi › LINEAGENTCAPS
LINEAGENTCAPS
構造体サイズ=各フィールドのバイト数(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 | このデータ構造体のうち、有用な情報が格納されている部分のサイズ (バイト単位)。 |
| dwAgentHandlerInfoSize | DWORD | 4 | +12 | +12 | エージェントハンドラー情報のサイズ (バイト単位)。 |
| dwAgentHandlerInfoOffset | DWORD | 4 | +16 | +16 | エージェント要求を処理しているサーバーアプリケーションの名前、バージョン、またはその他の識別情報を指定する NULL 終端文字列への、構造体の先頭からのオフセット。文字列のサイズは dwAgentHandlerInfoSize で指定されます。 |
| dwCapsVersion | DWORD | 4 | +20 | +20 | エージェントハンドラーアプリケーションがこの構造体の内容を準備する際に使用した TAPI バージョン。これは、呼び出し元アプリケーションが lineGetAgentCaps に渡した API バージョンを超えることはありません。 |
| dwFeatures | DWORD | 4 | +24 | +24 | LINEAGENTFEATURE_ 定数 を使用して表される、この回線で利用可能なエージェント関連の機能。サポートされている機能を呼び出すには、回線とアドレスが適切な状態である必要があります。ビット位置が 0 の場合は、対応する機能が一切利用できないことを示します。1 の場合は、その操作が意味を持つ適切な状態に回線があれば、対応する機能が利用できる可能性があることを示します。このフィールドにより、アプリケーションはデバイスがどのエージェント機能をサポートできるか (またはサポートできないか) を知ることができます。 |
| dwStates | DWORD | 4 | +28 | +28 | LINEAGENTSTATE_ 定数 のうち、 lineSetAgentState の dwAgentState パラメーターで使用できるもの。サポートされている状態を設定するには、回線とアドレスが適切な状態である必要があります。ビット位置が 0 の場合は、対応する状態が一切利用できないことを示します。1 の場合は、その状態が意味を持つ適切な状態に回線があれば、対応する状態が利用できる可能性があることを示します。このフィールドにより、アプリケーションはデバイスがどのエージェント状態をサポートできるか (またはサポートできないか) を知ることができます。 |
| dwNextStates | DWORD | 4 | +32 | +32 | LINEAGENTSTATE_ 定数のうち、 lineSetAgentState の dwNextAgentState パラメーターで使用できるもの。サポートされている状態を設定するには、回線とアドレスが適切な状態である必要があります。ビット位置が 0 の場合は、対応する状態が一切利用できないことを示します。1 の場合は、その状態が意味を持つ適切な状態に回線があれば、対応する状態が利用できる可能性があることを示します。このフィールドにより、アプリケーションはデバイスがどのエージェント状態をサポートできるか (またはサポートできないか) を知ることができます。 |
| dwMaxNumGroupEntries | DWORD | 4 | +36 | +36 | アドレス上に同時にログインできるエージェント識別子の最大数。 lineSetAgentGroup に渡す LINEAGENTGROUPLIST 構造体の dwNumEntries メンバーに指定できる最大値を決定します。 |
| dwAgentStatusMessages | DWORD | 4 | +40 | +40 | LINE_AGENTSTATUS メッセージの dwParam2 でアプリケーションが受け取ることのできる LINEAGENTSTATUS_ 定数 を示します。 |
| dwNumAgentExtensionIDs | DWORD | 4 | +44 | +44 | ExtensionIDList 配列に含まれる LINEEXTENSIONID 構造体の数。アドレスでエージェントハンドラー固有の拡張がサポートされている場合、値は 0 です。 |
| dwAgentExtensionIDListSize | DWORD | 4 | +48 | +48 | エージェント拡張 ID 配列のサイズ (バイト単位)。 |
| dwAgentExtensionIDListOffset | DWORD | 4 | +52 | +52 | 構造体の先頭から、 LINEEXTENSIONID 構造体の配列までのオフセット。サイズは dwNumExtensionIDs に SIZEOF(LINEEXTENSIONID) を乗じた値です。この配列には、そのアドレスのエージェントハンドルがサポートするエージェントハンドラー固有の拡張すべてについて、128 ビットの汎用一意識別子が列挙されます。使用する拡張は、 lineAgentSpecific 関数および LINE_AGENTSPECIFIC メッセージにおいて、このテーブル内での位置 (最初のエントリはエントリ 0) で参照されます。そのため、エージェントハンドラーは常に同じ順序で拡張識別子をこの配列に提示することが重要です。配列のサイズは dwAgentExtensionIDListOffset で指定されます。 |
| ProxyGUID | GUID | 16 | +56 | +56 | 回線に関連付けられた ACD プロキシの GUID。この要素は、TAPI バージョン 2.2 以降をネゴシエートしたアプリケーションにのみ公開されます。 |
公式ドキュメント
LINEAGENTCAPS 構造体は、ACD エージェントの機能を記述します。 lineGetAgentCaps 関数は、 LINEAGENTCAPS 構造体を返します。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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>
// LINEAGENTCAPS (x64 72 / x86 72 バイト)
#pragma pack(push, 1)
typedef struct LINEAGENTCAPS {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwAgentHandlerInfoSize;
DWORD dwAgentHandlerInfoOffset;
DWORD dwCapsVersion;
DWORD dwFeatures;
DWORD dwStates;
DWORD dwNextStates;
DWORD dwMaxNumGroupEntries;
DWORD dwAgentStatusMessages;
DWORD dwNumAgentExtensionIDs;
DWORD dwAgentExtensionIDListSize;
DWORD dwAgentExtensionIDListOffset;
GUID ProxyGUID;
} LINEAGENTCAPS;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINEAGENTCAPS
{
public uint dwTotalSize;
public uint dwNeededSize;
public uint dwUsedSize;
public uint dwAgentHandlerInfoSize;
public uint dwAgentHandlerInfoOffset;
public uint dwCapsVersion;
public uint dwFeatures;
public uint dwStates;
public uint dwNextStates;
public uint dwMaxNumGroupEntries;
public uint dwAgentStatusMessages;
public uint dwNumAgentExtensionIDs;
public uint dwAgentExtensionIDListSize;
public uint dwAgentExtensionIDListOffset;
public Guid ProxyGUID;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINEAGENTCAPS
Public dwTotalSize As UInteger
Public dwNeededSize As UInteger
Public dwUsedSize As UInteger
Public dwAgentHandlerInfoSize As UInteger
Public dwAgentHandlerInfoOffset As UInteger
Public dwCapsVersion As UInteger
Public dwFeatures As UInteger
Public dwStates As UInteger
Public dwNextStates As UInteger
Public dwMaxNumGroupEntries As UInteger
Public dwAgentStatusMessages As UInteger
Public dwNumAgentExtensionIDs As UInteger
Public dwAgentExtensionIDListSize As UInteger
Public dwAgentExtensionIDListOffset As UInteger
Public ProxyGUID As Guid
End Structureimport ctypes
from ctypes import wintypes
class LINEAGENTCAPS(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwNeededSize", wintypes.DWORD),
("dwUsedSize", wintypes.DWORD),
("dwAgentHandlerInfoSize", wintypes.DWORD),
("dwAgentHandlerInfoOffset", wintypes.DWORD),
("dwCapsVersion", wintypes.DWORD),
("dwFeatures", wintypes.DWORD),
("dwStates", wintypes.DWORD),
("dwNextStates", wintypes.DWORD),
("dwMaxNumGroupEntries", wintypes.DWORD),
("dwAgentStatusMessages", wintypes.DWORD),
("dwNumAgentExtensionIDs", wintypes.DWORD),
("dwAgentExtensionIDListSize", wintypes.DWORD),
("dwAgentExtensionIDListOffset", wintypes.DWORD),
("ProxyGUID", GUID),
]#[repr(C, packed(1))]
pub struct LINEAGENTCAPS {
pub dwTotalSize: u32,
pub dwNeededSize: u32,
pub dwUsedSize: u32,
pub dwAgentHandlerInfoSize: u32,
pub dwAgentHandlerInfoOffset: u32,
pub dwCapsVersion: u32,
pub dwFeatures: u32,
pub dwStates: u32,
pub dwNextStates: u32,
pub dwMaxNumGroupEntries: u32,
pub dwAgentStatusMessages: u32,
pub dwNumAgentExtensionIDs: u32,
pub dwAgentExtensionIDListSize: u32,
pub dwAgentExtensionIDListOffset: u32,
pub ProxyGUID: GUID,
}import "golang.org/x/sys/windows"
type LINEAGENTCAPS struct {
dwTotalSize uint32
dwNeededSize uint32
dwUsedSize uint32
dwAgentHandlerInfoSize uint32
dwAgentHandlerInfoOffset uint32
dwCapsVersion uint32
dwFeatures uint32
dwStates uint32
dwNextStates uint32
dwMaxNumGroupEntries uint32
dwAgentStatusMessages uint32
dwNumAgentExtensionIDs uint32
dwAgentExtensionIDListSize uint32
dwAgentExtensionIDListOffset uint32
ProxyGUID windows.GUID
}type
LINEAGENTCAPS = packed record
dwTotalSize: DWORD;
dwNeededSize: DWORD;
dwUsedSize: DWORD;
dwAgentHandlerInfoSize: DWORD;
dwAgentHandlerInfoOffset: DWORD;
dwCapsVersion: DWORD;
dwFeatures: DWORD;
dwStates: DWORD;
dwNextStates: DWORD;
dwMaxNumGroupEntries: DWORD;
dwAgentStatusMessages: DWORD;
dwNumAgentExtensionIDs: DWORD;
dwAgentExtensionIDListSize: DWORD;
dwAgentExtensionIDListOffset: DWORD;
ProxyGUID: TGUID;
end;const LINEAGENTCAPS = extern struct {
dwTotalSize: u32,
dwNeededSize: u32,
dwUsedSize: u32,
dwAgentHandlerInfoSize: u32,
dwAgentHandlerInfoOffset: u32,
dwCapsVersion: u32,
dwFeatures: u32,
dwStates: u32,
dwNextStates: u32,
dwMaxNumGroupEntries: u32,
dwAgentStatusMessages: u32,
dwNumAgentExtensionIDs: u32,
dwAgentExtensionIDListSize: u32,
dwAgentExtensionIDListOffset: u32,
ProxyGUID: GUID,
};type
LINEAGENTCAPS {.packed.} = object
dwTotalSize: uint32
dwNeededSize: uint32
dwUsedSize: uint32
dwAgentHandlerInfoSize: uint32
dwAgentHandlerInfoOffset: uint32
dwCapsVersion: uint32
dwFeatures: uint32
dwStates: uint32
dwNextStates: uint32
dwMaxNumGroupEntries: uint32
dwAgentStatusMessages: uint32
dwNumAgentExtensionIDs: uint32
dwAgentExtensionIDListSize: uint32
dwAgentExtensionIDListOffset: uint32
ProxyGUID: GUIDalign(1)
struct LINEAGENTCAPS
{
uint dwTotalSize;
uint dwNeededSize;
uint dwUsedSize;
uint dwAgentHandlerInfoSize;
uint dwAgentHandlerInfoOffset;
uint dwCapsVersion;
uint dwFeatures;
uint dwStates;
uint dwNextStates;
uint dwMaxNumGroupEntries;
uint dwAgentStatusMessages;
uint dwNumAgentExtensionIDs;
uint dwAgentExtensionIDListSize;
uint dwAgentExtensionIDListOffset;
GUID ProxyGUID;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINEAGENTCAPS サイズ: 72 バイト(x64)
dim st, 18 ; 4byte整数×18(構造体サイズ 72 / 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 も可)
; dwAgentHandlerInfoSize : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwAgentHandlerInfoOffset : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwCapsVersion : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwFeatures : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwStates : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwNextStates : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwMaxNumGroupEntries : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwAgentStatusMessages : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwNumAgentExtensionIDs : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwAgentExtensionIDListSize : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwAgentExtensionIDListOffset : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; ProxyGUID : GUID (+56, 16byte) varptr(st)+56 を基点に操作(16byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global GUID, pack=1
#field int Data1
#field short Data2
#field short Data3
#field byte Data4 8
#endstruct
#defstruct global LINEAGENTCAPS, pack=1
#field int dwTotalSize
#field int dwNeededSize
#field int dwUsedSize
#field int dwAgentHandlerInfoSize
#field int dwAgentHandlerInfoOffset
#field int dwCapsVersion
#field int dwFeatures
#field int dwStates
#field int dwNextStates
#field int dwMaxNumGroupEntries
#field int dwAgentStatusMessages
#field int dwNumAgentExtensionIDs
#field int dwAgentExtensionIDListSize
#field int dwAgentExtensionIDListOffset
#field GUID ProxyGUID
#endstruct
stdim st, LINEAGENTCAPS ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize