ホーム › Devices.Tapi › LINEAGENTINFO
LINEAGENTINFO
構造体サイズ=各フィールドのバイト数(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 | 実際に使用されたサイズをバイトで表す。 |
| dwAgentState | DWORD | 4 | +12 | +12 | 現在のエージェント状態を示す値。 |
| dwNextAgentState | DWORD | 4 | +16 | +16 | 予定される次のエージェント状態を示す値。 |
| dwMeasurementPeriod | DWORD | 4 | +20 | +20 | 統計値を集計する計測期間を秒で表す。 |
| cyOverallCallRate | CY | 8 | +24 | +24 | 全体の呼レート(時間あたり呼数)を通貨型で表す。 |
| dwNumberOfACDCalls | DWORD | 4 | +32 | +32 | 計測期間内に処理したACD呼の数を表す。 |
| dwNumberOfIncomingCalls | DWORD | 4 | +36 | +36 | 計測期間内の着信呼の数を表す。 |
| dwNumberOfOutgoingCalls | DWORD | 4 | +40 | +40 | 計測期間内の発信呼の数を表す。 |
| dwTotalACDTalkTime | DWORD | 4 | +44 | +44 | ACD呼の総通話時間を秒で表す。 |
| dwTotalACDCallTime | DWORD | 4 | +48 | +48 | ACD呼の総呼処理時間を秒で表す。 |
| dwTotalACDWrapUpTime | DWORD | 4 | +52 | +52 | ACD呼の総後処理(ラップアップ)時間を秒で表す。 |
各言語での定義
#include <windows.h>
// CY (x64 8 / x86 8 バイト)
typedef struct CY {
_Anonymous_e__Struct Anonymous;
LONGLONG int64;
} CY;
// LINEAGENTINFO (x64 56 / x86 56 バイト)
#pragma pack(push, 1)
typedef struct LINEAGENTINFO {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwAgentState;
DWORD dwNextAgentState;
DWORD dwMeasurementPeriod;
CY cyOverallCallRate;
DWORD dwNumberOfACDCalls;
DWORD dwNumberOfIncomingCalls;
DWORD dwNumberOfOutgoingCalls;
DWORD dwTotalACDTalkTime;
DWORD dwTotalACDCallTime;
DWORD dwTotalACDWrapUpTime;
} LINEAGENTINFO;
#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 LINEAGENTINFO
{
public uint dwTotalSize;
public uint dwNeededSize;
public uint dwUsedSize;
public uint dwAgentState;
public uint dwNextAgentState;
public uint dwMeasurementPeriod;
public CY cyOverallCallRate;
public uint dwNumberOfACDCalls;
public uint dwNumberOfIncomingCalls;
public uint dwNumberOfOutgoingCalls;
public uint dwTotalACDTalkTime;
public uint dwTotalACDCallTime;
public uint dwTotalACDWrapUpTime;
}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 LINEAGENTINFO
Public dwTotalSize As UInteger
Public dwNeededSize As UInteger
Public dwUsedSize As UInteger
Public dwAgentState As UInteger
Public dwNextAgentState As UInteger
Public dwMeasurementPeriod As UInteger
Public cyOverallCallRate As CY
Public dwNumberOfACDCalls As UInteger
Public dwNumberOfIncomingCalls As UInteger
Public dwNumberOfOutgoingCalls As UInteger
Public dwTotalACDTalkTime As UInteger
Public dwTotalACDCallTime As UInteger
Public dwTotalACDWrapUpTime As UInteger
End Structureimport ctypes
from ctypes import wintypes
class CY(ctypes.Structure):
_fields_ = [
("Anonymous", _Anonymous_e__Struct),
("int64", ctypes.c_longlong),
]
class LINEAGENTINFO(ctypes.Structure):
_pack_ = 1
_fields_ = [
("dwTotalSize", wintypes.DWORD),
("dwNeededSize", wintypes.DWORD),
("dwUsedSize", wintypes.DWORD),
("dwAgentState", wintypes.DWORD),
("dwNextAgentState", wintypes.DWORD),
("dwMeasurementPeriod", wintypes.DWORD),
("cyOverallCallRate", CY),
("dwNumberOfACDCalls", wintypes.DWORD),
("dwNumberOfIncomingCalls", wintypes.DWORD),
("dwNumberOfOutgoingCalls", wintypes.DWORD),
("dwTotalACDTalkTime", wintypes.DWORD),
("dwTotalACDCallTime", wintypes.DWORD),
("dwTotalACDWrapUpTime", wintypes.DWORD),
]#[repr(C)]
pub struct CY {
pub Anonymous: _Anonymous_e__Struct,
pub int64: i64,
}
#[repr(C, packed(1))]
pub struct LINEAGENTINFO {
pub dwTotalSize: u32,
pub dwNeededSize: u32,
pub dwUsedSize: u32,
pub dwAgentState: u32,
pub dwNextAgentState: u32,
pub dwMeasurementPeriod: u32,
pub cyOverallCallRate: CY,
pub dwNumberOfACDCalls: u32,
pub dwNumberOfIncomingCalls: u32,
pub dwNumberOfOutgoingCalls: u32,
pub dwTotalACDTalkTime: u32,
pub dwTotalACDCallTime: u32,
pub dwTotalACDWrapUpTime: u32,
}import "golang.org/x/sys/windows"
type CY struct {
Anonymous _Anonymous_e__Struct
int64 int64
}
type LINEAGENTINFO struct {
dwTotalSize uint32
dwNeededSize uint32
dwUsedSize uint32
dwAgentState uint32
dwNextAgentState uint32
dwMeasurementPeriod uint32
cyOverallCallRate CY
dwNumberOfACDCalls uint32
dwNumberOfIncomingCalls uint32
dwNumberOfOutgoingCalls uint32
dwTotalACDTalkTime uint32
dwTotalACDCallTime uint32
dwTotalACDWrapUpTime uint32
}type
CY = record
Anonymous: _Anonymous_e__Struct;
int64: Int64;
end;
LINEAGENTINFO = packed record
dwTotalSize: DWORD;
dwNeededSize: DWORD;
dwUsedSize: DWORD;
dwAgentState: DWORD;
dwNextAgentState: DWORD;
dwMeasurementPeriod: DWORD;
cyOverallCallRate: CY;
dwNumberOfACDCalls: DWORD;
dwNumberOfIncomingCalls: DWORD;
dwNumberOfOutgoingCalls: DWORD;
dwTotalACDTalkTime: DWORD;
dwTotalACDCallTime: DWORD;
dwTotalACDWrapUpTime: DWORD;
end;const CY = extern struct {
Anonymous: _Anonymous_e__Struct,
int64: i64,
};
const LINEAGENTINFO = extern struct {
dwTotalSize: u32,
dwNeededSize: u32,
dwUsedSize: u32,
dwAgentState: u32,
dwNextAgentState: u32,
dwMeasurementPeriod: u32,
cyOverallCallRate: CY,
dwNumberOfACDCalls: u32,
dwNumberOfIncomingCalls: u32,
dwNumberOfOutgoingCalls: u32,
dwTotalACDTalkTime: u32,
dwTotalACDCallTime: u32,
dwTotalACDWrapUpTime: u32,
};type
CY {.bycopy.} = object
Anonymous: _Anonymous_e__Struct
int64: int64
LINEAGENTINFO {.packed.} = object
dwTotalSize: uint32
dwNeededSize: uint32
dwUsedSize: uint32
dwAgentState: uint32
dwNextAgentState: uint32
dwMeasurementPeriod: uint32
cyOverallCallRate: CY
dwNumberOfACDCalls: uint32
dwNumberOfIncomingCalls: uint32
dwNumberOfOutgoingCalls: uint32
dwTotalACDTalkTime: uint32
dwTotalACDCallTime: uint32
dwTotalACDWrapUpTime: uint32struct CY
{
_Anonymous_e__Struct Anonymous;
long int64;
}
align(1)
struct LINEAGENTINFO
{
uint dwTotalSize;
uint dwNeededSize;
uint dwUsedSize;
uint dwAgentState;
uint dwNextAgentState;
uint dwMeasurementPeriod;
CY cyOverallCallRate;
uint dwNumberOfACDCalls;
uint dwNumberOfIncomingCalls;
uint dwNumberOfOutgoingCalls;
uint dwTotalACDTalkTime;
uint dwTotalACDCallTime;
uint dwTotalACDWrapUpTime;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINEAGENTINFO サイズ: 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 も可)
; dwAgentState : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwNextAgentState : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwMeasurementPeriod : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; cyOverallCallRate : CY (+24, 8byte) varptr(st)+24 を基点に操作(8byte:入れ子/配列)
; dwNumberOfACDCalls : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwNumberOfIncomingCalls : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwNumberOfOutgoingCalls : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwTotalACDTalkTime : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwTotalACDCallTime : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwTotalACDWrapUpTime : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global LINEAGENTINFO, pack=1
#field int dwTotalSize
#field int dwNeededSize
#field int dwUsedSize
#field int dwAgentState
#field int dwNextAgentState
#field int dwMeasurementPeriod
#field byte cyOverallCallRate 8
#field int dwNumberOfACDCalls
#field int dwNumberOfIncomingCalls
#field int dwNumberOfOutgoingCalls
#field int dwTotalACDTalkTime
#field int dwTotalACDCallTime
#field int dwTotalACDWrapUpTime
#endstruct
stdim st, LINEAGENTINFO ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize
; ※union フィールドは byte 列で確保(NSTRUCT は union 非対応)。必要に応じ手動でアクセス。