ホーム › Devices.Tapi › LINEAGENTSTATUS
LINEAGENTSTATUS
構造体サイズ=各フィールドのバイト数(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 | このデータ構造体のうち、有効な情報が格納されている部分のサイズ (バイト単位)。 |
| dwNumEntries | DWORD | 4 | +12 | +12 | GroupList 配列に含まれる LINEAGENTGROUPENTRY 構造体の数。そのアドレスにログインしているエージェントがない場合、値は 0 です。 |
| dwGroupListSize | DWORD | 4 | +16 | +16 | グループ リスト配列のサイズ (バイト単位)。 |
| dwGroupListOffset | DWORD | 4 | +20 | +20 | この構造体の先頭から LINEAGENTGROUPENTRY 構造体の配列までのオフセット。サイズは dwNumEntries × SIZEOF(LINEAGENTGROUPENTRY) です。この配列には、エージェントが現在そのアドレスでログインしているグループが格納されます。このフィールドのサイズは dwGroupListSize で指定されます。 |
| dwState | DWORD | 4 | +24 | +24 | エージェントの現在の状態。 LINEAGENTSTATE_ 定数のいずれかです。 |
| dwNextState | DWORD | 4 | +28 | +28 | 現在の通話が完了したときにエージェントが自動的に設定される状態。LINEAGENTSTATE_ 定数のいずれかです。 |
| dwActivityID | DWORD | 4 | +32 | +32 | 現在のエージェント アクティビティの識別子。 |
| dwActivitySize | DWORD | 4 | +36 | +36 | エージェント アクティビティ文字列のサイズ (バイト単位)。 |
| dwActivityOffset | DWORD | 4 | +40 | +40 | この構造体の先頭から、現在のエージェント アクティビティを指定する null 終端文字列までのオフセット。文字列のサイズは dwActivitySize で指定されます。 |
| dwAgentFeatures | DWORD | 4 | +44 | +44 | 状態を取得した時点で利用可能なエージェント関連の機能。 LINEAGENTFEATURE_ 定数を使用して表されます。 |
| dwValidStates | DWORD | 4 | +48 | +48 | 現時点で lineSetAgentState を使用して選択できるエージェントの状態。 LINEAGENTSTATE_ 定数の 1 つ以上で構成されます。 |
| dwValidNextStates | DWORD | 4 | +52 | +52 | 現時点で lineSetAgentState 関数を呼び出して選択できる次のエージェントの状態。LINEAGENTSTATE_ 定数の 1 つ以上で構成されます。 |
公式ドキュメント
LINEAGENTSTATUS 構造体は、ACD エージェントの現在の状態を記述します。 lineGetAgentStatus 関数は LINEAGENTSTATUS 構造体を返します。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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>
// LINEAGENTSTATUS (x64 56 / x86 56 バイト)
#pragma pack(push, 1)
typedef struct LINEAGENTSTATUS {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwNumEntries;
DWORD dwGroupListSize;
DWORD dwGroupListOffset;
DWORD dwState;
DWORD dwNextState;
DWORD dwActivityID;
DWORD dwActivitySize;
DWORD dwActivityOffset;
DWORD dwAgentFeatures;
DWORD dwValidStates;
DWORD dwValidNextStates;
} LINEAGENTSTATUS;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINEAGENTSTATUS
{
public uint dwTotalSize;
public uint dwNeededSize;
public uint dwUsedSize;
public uint dwNumEntries;
public uint dwGroupListSize;
public uint dwGroupListOffset;
public uint dwState;
public uint dwNextState;
public uint dwActivityID;
public uint dwActivitySize;
public uint dwActivityOffset;
public uint dwAgentFeatures;
public uint dwValidStates;
public uint dwValidNextStates;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINEAGENTSTATUS
Public dwTotalSize As UInteger
Public dwNeededSize As UInteger
Public dwUsedSize As UInteger
Public dwNumEntries As UInteger
Public dwGroupListSize As UInteger
Public dwGroupListOffset As UInteger
Public dwState As UInteger
Public dwNextState As UInteger
Public dwActivityID As UInteger
Public dwActivitySize As UInteger
Public dwActivityOffset As UInteger
Public dwAgentFeatures As UInteger
Public dwValidStates As UInteger
Public dwValidNextStates As UInteger
End Structureimport ctypes
from ctypes import wintypes
class LINEAGENTSTATUS(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwNeededSize", wintypes.DWORD),
("dwUsedSize", wintypes.DWORD),
("dwNumEntries", wintypes.DWORD),
("dwGroupListSize", wintypes.DWORD),
("dwGroupListOffset", wintypes.DWORD),
("dwState", wintypes.DWORD),
("dwNextState", wintypes.DWORD),
("dwActivityID", wintypes.DWORD),
("dwActivitySize", wintypes.DWORD),
("dwActivityOffset", wintypes.DWORD),
("dwAgentFeatures", wintypes.DWORD),
("dwValidStates", wintypes.DWORD),
("dwValidNextStates", wintypes.DWORD),
]#[repr(C, packed(1))]
pub struct LINEAGENTSTATUS {
pub dwTotalSize: u32,
pub dwNeededSize: u32,
pub dwUsedSize: u32,
pub dwNumEntries: u32,
pub dwGroupListSize: u32,
pub dwGroupListOffset: u32,
pub dwState: u32,
pub dwNextState: u32,
pub dwActivityID: u32,
pub dwActivitySize: u32,
pub dwActivityOffset: u32,
pub dwAgentFeatures: u32,
pub dwValidStates: u32,
pub dwValidNextStates: u32,
}import "golang.org/x/sys/windows"
type LINEAGENTSTATUS struct {
dwTotalSize uint32
dwNeededSize uint32
dwUsedSize uint32
dwNumEntries uint32
dwGroupListSize uint32
dwGroupListOffset uint32
dwState uint32
dwNextState uint32
dwActivityID uint32
dwActivitySize uint32
dwActivityOffset uint32
dwAgentFeatures uint32
dwValidStates uint32
dwValidNextStates uint32
}type
LINEAGENTSTATUS = packed record
dwTotalSize: DWORD;
dwNeededSize: DWORD;
dwUsedSize: DWORD;
dwNumEntries: DWORD;
dwGroupListSize: DWORD;
dwGroupListOffset: DWORD;
dwState: DWORD;
dwNextState: DWORD;
dwActivityID: DWORD;
dwActivitySize: DWORD;
dwActivityOffset: DWORD;
dwAgentFeatures: DWORD;
dwValidStates: DWORD;
dwValidNextStates: DWORD;
end;const LINEAGENTSTATUS = extern struct {
dwTotalSize: u32,
dwNeededSize: u32,
dwUsedSize: u32,
dwNumEntries: u32,
dwGroupListSize: u32,
dwGroupListOffset: u32,
dwState: u32,
dwNextState: u32,
dwActivityID: u32,
dwActivitySize: u32,
dwActivityOffset: u32,
dwAgentFeatures: u32,
dwValidStates: u32,
dwValidNextStates: u32,
};type
LINEAGENTSTATUS {.packed.} = object
dwTotalSize: uint32
dwNeededSize: uint32
dwUsedSize: uint32
dwNumEntries: uint32
dwGroupListSize: uint32
dwGroupListOffset: uint32
dwState: uint32
dwNextState: uint32
dwActivityID: uint32
dwActivitySize: uint32
dwActivityOffset: uint32
dwAgentFeatures: uint32
dwValidStates: uint32
dwValidNextStates: uint32align(1)
struct LINEAGENTSTATUS
{
uint dwTotalSize;
uint dwNeededSize;
uint dwUsedSize;
uint dwNumEntries;
uint dwGroupListSize;
uint dwGroupListOffset;
uint dwState;
uint dwNextState;
uint dwActivityID;
uint dwActivitySize;
uint dwActivityOffset;
uint dwAgentFeatures;
uint dwValidStates;
uint dwValidNextStates;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINEAGENTSTATUS サイズ: 56 バイト(x64)
dim st, 14 ; 4byte整数×14(構造体サイズ 56 / 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 も可)
; dwNumEntries : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwGroupListSize : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwGroupListOffset : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwState : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwNextState : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwActivityID : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwActivitySize : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwActivityOffset : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwAgentFeatures : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwValidStates : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwValidNextStates : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global LINEAGENTSTATUS, pack=1
#field int dwTotalSize
#field int dwNeededSize
#field int dwUsedSize
#field int dwNumEntries
#field int dwGroupListSize
#field int dwGroupListOffset
#field int dwState
#field int dwNextState
#field int dwActivityID
#field int dwActivitySize
#field int dwActivityOffset
#field int dwAgentFeatures
#field int dwValidStates
#field int dwValidNextStates
#endstruct
stdim st, LINEAGENTSTATUS ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize