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

LINEAGENTSTATUS

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

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

フィールド

フィールドサイズx64x86説明
dwTotalSizeDWORD4+0+0このデータ構造体に割り当てられている合計サイズ (バイト単位)。
dwNeededSizeDWORD4+4+4要求されたすべての情報を保持するために必要なサイズ (バイト単位)。
dwUsedSizeDWORD4+8+8このデータ構造体のうち、有効な情報が格納されている部分のサイズ (バイト単位)。
dwNumEntriesDWORD4+12+12GroupList 配列に含まれる LINEAGENTGROUPENTRY 構造体の数。そのアドレスにログインしているエージェントがない場合、値は 0 です。
dwGroupListSizeDWORD4+16+16グループ リスト配列のサイズ (バイト単位)。
dwGroupListOffsetDWORD4+20+20この構造体の先頭から LINEAGENTGROUPENTRY 構造体の配列までのオフセット。サイズは dwNumEntries × SIZEOF(LINEAGENTGROUPENTRY) です。この配列には、エージェントが現在そのアドレスでログインしているグループが格納されます。このフィールドのサイズは dwGroupListSize で指定されます。
dwStateDWORD4+24+24エージェントの現在の状態。 LINEAGENTSTATE_ 定数のいずれかです。
dwNextStateDWORD4+28+28現在の通話が完了したときにエージェントが自動的に設定される状態。LINEAGENTSTATE_ 定数のいずれかです。
dwActivityIDDWORD4+32+32現在のエージェント アクティビティの識別子。
dwActivitySizeDWORD4+36+36エージェント アクティビティ文字列のサイズ (バイト単位)。
dwActivityOffsetDWORD4+40+40この構造体の先頭から、現在のエージェント アクティビティを指定する null 終端文字列までのオフセット。文字列のサイズは dwActivitySize で指定されます。
dwAgentFeaturesDWORD4+44+44状態を取得した時点で利用可能なエージェント関連の機能。 LINEAGENTFEATURE_ 定数を使用して表されます。
dwValidStatesDWORD4+48+48現時点で lineSetAgentState を使用して選択できるエージェントの状態。 LINEAGENTSTATE_ 定数の 1 つ以上で構成されます。
dwValidNextStatesDWORD4+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)

各言語での定義

#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 Structure
import 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: uint32
align(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