ホーム › Devices.Tapi › LINEAGENTSESSIONINFO
LINEAGENTSESSIONINFO
構造体サイズ=各フィールドのバイト数(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 | 実際に使用されたサイズをバイトで表す。 |
| dwAgentSessionState | DWORD | 4 | +12 | +12 | 現在のエージェントセッション状態を示す値。 |
| dwNextAgentSessionState | DWORD | 4 | +16 | +16 | 予定される次のセッション状態を示す値。 |
| dateSessionStartTime | DOUBLE | 8 | +20 | +20 | セッション開始日時を表すOLEオートメーション日付値。 |
| dwSessionDuration | DWORD | 4 | +28 | +28 | セッションの継続時間を秒で表す。 |
| dwNumberOfCalls | DWORD | 4 | +32 | +32 | セッション中に処理した呼の数を表す。 |
| dwTotalTalkTime | DWORD | 4 | +36 | +36 | セッション中の総通話時間を秒で表す。 |
| dwAverageTalkTime | DWORD | 4 | +40 | +40 | 1呼あたりの平均通話時間を秒で表す。 |
| dwTotalCallTime | DWORD | 4 | +44 | +44 | セッション中の総呼処理時間を秒で表す。 |
| dwAverageCallTime | DWORD | 4 | +48 | +48 | 1呼あたりの平均呼処理時間を秒で表す。 |
| dwTotalWrapUpTime | DWORD | 4 | +52 | +52 | セッション中の総後処理時間を秒で表す。 |
| dwAverageWrapUpTime | DWORD | 4 | +56 | +56 | 1呼あたりの平均後処理時間を秒で表す。 |
| cyACDCallRate | CY | 8 | +60 | +60 | ACD呼のレート(時間あたり呼数)を通貨型で表す。 |
| dwLongestTimeToAnswer | DWORD | 4 | +68 | +68 | 応答までの最長所要時間を秒で表す。 |
| dwAverageTimeToAnswer | DWORD | 4 | +72 | +72 | 応答までの平均所要時間を秒で表す。 |
各言語での定義
#include <windows.h>
// CY (x64 8 / x86 8 バイト)
typedef struct CY {
_Anonymous_e__Struct Anonymous;
LONGLONG int64;
} CY;
// LINEAGENTSESSIONINFO (x64 76 / x86 76 バイト)
#pragma pack(push, 1)
typedef struct LINEAGENTSESSIONINFO {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwAgentSessionState;
DWORD dwNextAgentSessionState;
DOUBLE dateSessionStartTime;
DWORD dwSessionDuration;
DWORD dwNumberOfCalls;
DWORD dwTotalTalkTime;
DWORD dwAverageTalkTime;
DWORD dwTotalCallTime;
DWORD dwAverageCallTime;
DWORD dwTotalWrapUpTime;
DWORD dwAverageWrapUpTime;
CY cyACDCallRate;
DWORD dwLongestTimeToAnswer;
DWORD dwAverageTimeToAnswer;
} LINEAGENTSESSIONINFO;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct CY
{
public _Anonymous_e__Struct Anonymous;
public long int64;
}
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINEAGENTSESSIONINFO
{
public uint dwTotalSize;
public uint dwNeededSize;
public uint dwUsedSize;
public uint dwAgentSessionState;
public uint dwNextAgentSessionState;
public double dateSessionStartTime;
public uint dwSessionDuration;
public uint dwNumberOfCalls;
public uint dwTotalTalkTime;
public uint dwAverageTalkTime;
public uint dwTotalCallTime;
public uint dwAverageCallTime;
public uint dwTotalWrapUpTime;
public uint dwAverageWrapUpTime;
public CY cyACDCallRate;
public uint dwLongestTimeToAnswer;
public uint dwAverageTimeToAnswer;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure CY
Public Anonymous As _Anonymous_e__Struct
Public int64 As Long
End Structure
<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINEAGENTSESSIONINFO
Public dwTotalSize As UInteger
Public dwNeededSize As UInteger
Public dwUsedSize As UInteger
Public dwAgentSessionState As UInteger
Public dwNextAgentSessionState As UInteger
Public dateSessionStartTime As Double
Public dwSessionDuration As UInteger
Public dwNumberOfCalls As UInteger
Public dwTotalTalkTime As UInteger
Public dwAverageTalkTime As UInteger
Public dwTotalCallTime As UInteger
Public dwAverageCallTime As UInteger
Public dwTotalWrapUpTime As UInteger
Public dwAverageWrapUpTime As UInteger
Public cyACDCallRate As CY
Public dwLongestTimeToAnswer As UInteger
Public dwAverageTimeToAnswer As UInteger
End Structureimport ctypes
from ctypes import wintypes
class CY(ctypes.Structure):
_fields_ = [
("Anonymous", _Anonymous_e__Struct),
("int64", ctypes.c_longlong),
]
class LINEAGENTSESSIONINFO(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwNeededSize", wintypes.DWORD),
("dwUsedSize", wintypes.DWORD),
("dwAgentSessionState", wintypes.DWORD),
("dwNextAgentSessionState", wintypes.DWORD),
("dateSessionStartTime", ctypes.c_double),
("dwSessionDuration", wintypes.DWORD),
("dwNumberOfCalls", wintypes.DWORD),
("dwTotalTalkTime", wintypes.DWORD),
("dwAverageTalkTime", wintypes.DWORD),
("dwTotalCallTime", wintypes.DWORD),
("dwAverageCallTime", wintypes.DWORD),
("dwTotalWrapUpTime", wintypes.DWORD),
("dwAverageWrapUpTime", wintypes.DWORD),
("cyACDCallRate", CY),
("dwLongestTimeToAnswer", wintypes.DWORD),
("dwAverageTimeToAnswer", wintypes.DWORD),
]#[repr(C)]
pub struct CY {
pub Anonymous: _Anonymous_e__Struct,
pub int64: i64,
}
#[repr(C, packed(1))]
pub struct LINEAGENTSESSIONINFO {
pub dwTotalSize: u32,
pub dwNeededSize: u32,
pub dwUsedSize: u32,
pub dwAgentSessionState: u32,
pub dwNextAgentSessionState: u32,
pub dateSessionStartTime: f64,
pub dwSessionDuration: u32,
pub dwNumberOfCalls: u32,
pub dwTotalTalkTime: u32,
pub dwAverageTalkTime: u32,
pub dwTotalCallTime: u32,
pub dwAverageCallTime: u32,
pub dwTotalWrapUpTime: u32,
pub dwAverageWrapUpTime: u32,
pub cyACDCallRate: CY,
pub dwLongestTimeToAnswer: u32,
pub dwAverageTimeToAnswer: u32,
}import "golang.org/x/sys/windows"
type CY struct {
Anonymous _Anonymous_e__Struct
int64 int64
}
type LINEAGENTSESSIONINFO struct {
dwTotalSize uint32
dwNeededSize uint32
dwUsedSize uint32
dwAgentSessionState uint32
dwNextAgentSessionState uint32
dateSessionStartTime float64
dwSessionDuration uint32
dwNumberOfCalls uint32
dwTotalTalkTime uint32
dwAverageTalkTime uint32
dwTotalCallTime uint32
dwAverageCallTime uint32
dwTotalWrapUpTime uint32
dwAverageWrapUpTime uint32
cyACDCallRate CY
dwLongestTimeToAnswer uint32
dwAverageTimeToAnswer uint32
}type
CY = record
Anonymous: _Anonymous_e__Struct;
int64: Int64;
end;
LINEAGENTSESSIONINFO = packed record
dwTotalSize: DWORD;
dwNeededSize: DWORD;
dwUsedSize: DWORD;
dwAgentSessionState: DWORD;
dwNextAgentSessionState: DWORD;
dateSessionStartTime: Double;
dwSessionDuration: DWORD;
dwNumberOfCalls: DWORD;
dwTotalTalkTime: DWORD;
dwAverageTalkTime: DWORD;
dwTotalCallTime: DWORD;
dwAverageCallTime: DWORD;
dwTotalWrapUpTime: DWORD;
dwAverageWrapUpTime: DWORD;
cyACDCallRate: CY;
dwLongestTimeToAnswer: DWORD;
dwAverageTimeToAnswer: DWORD;
end;const CY = extern struct {
Anonymous: _Anonymous_e__Struct,
int64: i64,
};
const LINEAGENTSESSIONINFO = extern struct {
dwTotalSize: u32,
dwNeededSize: u32,
dwUsedSize: u32,
dwAgentSessionState: u32,
dwNextAgentSessionState: u32,
dateSessionStartTime: f64,
dwSessionDuration: u32,
dwNumberOfCalls: u32,
dwTotalTalkTime: u32,
dwAverageTalkTime: u32,
dwTotalCallTime: u32,
dwAverageCallTime: u32,
dwTotalWrapUpTime: u32,
dwAverageWrapUpTime: u32,
cyACDCallRate: CY,
dwLongestTimeToAnswer: u32,
dwAverageTimeToAnswer: u32,
};type
CY {.bycopy.} = object
Anonymous: _Anonymous_e__Struct
int64: int64
LINEAGENTSESSIONINFO {.packed.} = object
dwTotalSize: uint32
dwNeededSize: uint32
dwUsedSize: uint32
dwAgentSessionState: uint32
dwNextAgentSessionState: uint32
dateSessionStartTime: float64
dwSessionDuration: uint32
dwNumberOfCalls: uint32
dwTotalTalkTime: uint32
dwAverageTalkTime: uint32
dwTotalCallTime: uint32
dwAverageCallTime: uint32
dwTotalWrapUpTime: uint32
dwAverageWrapUpTime: uint32
cyACDCallRate: CY
dwLongestTimeToAnswer: uint32
dwAverageTimeToAnswer: uint32struct CY
{
_Anonymous_e__Struct Anonymous;
long int64;
}
align(1)
struct LINEAGENTSESSIONINFO
{
uint dwTotalSize;
uint dwNeededSize;
uint dwUsedSize;
uint dwAgentSessionState;
uint dwNextAgentSessionState;
double dateSessionStartTime;
uint dwSessionDuration;
uint dwNumberOfCalls;
uint dwTotalTalkTime;
uint dwAverageTalkTime;
uint dwTotalCallTime;
uint dwAverageCallTime;
uint dwTotalWrapUpTime;
uint dwAverageWrapUpTime;
CY cyACDCallRate;
uint dwLongestTimeToAnswer;
uint dwAverageTimeToAnswer;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINEAGENTSESSIONINFO サイズ: 76 バイト(x64)
dim st, 19 ; 4byte整数×19(構造体サイズ 76 / 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 も可)
; dwAgentSessionState : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwNextAgentSessionState : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dateSessionStartTime : DOUBLE (+20, 8byte) qpoke st,20,値 / qpeek(st,20) ※IronHSPのみ。3.7/3.8は lpoke st,20,下位 : lpoke st,24,上位
; dwSessionDuration : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwNumberOfCalls : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwTotalTalkTime : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwAverageTalkTime : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwTotalCallTime : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwAverageCallTime : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwTotalWrapUpTime : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; dwAverageWrapUpTime : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; cyACDCallRate : CY (+60, 8byte) varptr(st)+60 を基点に操作(8byte:入れ子/配列)
; dwLongestTimeToAnswer : DWORD (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; dwAverageTimeToAnswer : DWORD (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global LINEAGENTSESSIONINFO, pack=1
#field int dwTotalSize
#field int dwNeededSize
#field int dwUsedSize
#field int dwAgentSessionState
#field int dwNextAgentSessionState
#field double dateSessionStartTime
#field int dwSessionDuration
#field int dwNumberOfCalls
#field int dwTotalTalkTime
#field int dwAverageTalkTime
#field int dwTotalCallTime
#field int dwAverageCallTime
#field int dwTotalWrapUpTime
#field int dwAverageWrapUpTime
#field byte cyACDCallRate 8
#field int dwLongestTimeToAnswer
#field int dwAverageTimeToAnswer
#endstruct
stdim st, LINEAGENTSESSIONINFO ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize
; ※union フィールドは byte 列で確保(NSTRUCT は union 非対応)。必要に応じ手動でアクセス。