Win32 API 日本語リファレンス
ホームDevices.Tapi › LINEAGENTINFO

LINEAGENTINFO

構造体
サイズx64: 56 バイト / x86: 56 バイトパッキング1

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
dwTotalSizeDWORD4+0+0null 終端文字を含む、この構造体に割り当てられた合計サイズ (バイト単位)。
dwNeededSizeDWORD4+4+4要求されたすべての情報を保持するために必要なサイズ (バイト単位)。
dwUsedSizeDWORD4+8+8この構造体のうち、有用な情報が格納されている部分のサイズ (バイト単位)。
dwAgentStateDWORD4+12+12LINEAGENTSTATEEX_ 定数 のいずれかでなければなりません。
dwNextAgentStateDWORD4+16+16LINEAGENTSTATEEX_ 定数 のいずれかでなければなりません。
dwMeasurementPeriodDWORD4+20+20スイッチまたは実装が情報を保存し、計算する期間 (秒単位)。たとえば、dwNumberOfACDCalls はエージェントが処理した通話の数を保持しますが、dwMeasurementPeriod は、この値が過去 1 時間、1 日、1 か月のいずれに処理された通話を参照しているかを示します。
cyOverallCallRateCY8+24+24すべてのエージェント セッションにわたるエージェントの通話レート (エージェント時間あたりの通話数。エージェント時間とは、エージェントが 1 つ以上のエージェント セッションでアクティブだった時間を表します)。これは固定小数点の 10 進数です。
dwNumberOfACDCallsDWORD4+32+32すべてのセッションを通じてこのエージェントが処理した ACD 通話の数。
dwNumberOfIncomingCallsDWORD4+36+36このエージェントが処理した ACD 以外の着信通話の数。
dwNumberOfOutgoingCallsDWORD4+40+40このエージェントが処理した ACD 以外の発信通話の数。
dwTotalACDTalkTimeDWORD4+44+44すべてのセッションを通じて、このエージェントが ACD 通話での通話に費やした秒数。
dwTotalACDCallTimeDWORD4+48+48(すべてのセッションを通じて) このエージェントが ACD 通話に費やした秒数。通話時間に加え、後処理 (ラップアップ) 時間も含まれます。
dwTotalACDWrapUpTimeDWORD4+52+52すべてのセッションを通じて、このエージェントが ACD 通話の後処理 (通話後作業) に費やした秒数。

公式ドキュメント

LINEAGENTINFO 構造体は、ACD エージェントに関する情報を格納します。 lineGetAgentInfo 関数は LINEAGENTINFO 構造体を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#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 Structure
import 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: uint32
struct 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 非対応)。必要に応じ手動でアクセス。