Win32 API 日本語リファレンス
ホームSystem.ComponentServices › ComponentStatistics

ComponentStatistics

構造体
サイズx64: 52 バイト / x86: 52 バイト

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

フィールド

フィールドサイズx64x86説明
NumInstancesDWORD4+0+0現在のインスタンス数。
NumBoundReferencesDWORD4+4+4バインド済み参照の数。
NumPooledObjectsDWORD4+8+8プール内のオブジェクト数。
NumObjectsInCallDWORD4+12+12呼び出し処理中のオブジェクト数。
AvgResponseTimeInMsDWORD4+16+16平均応答時間(ミリ秒)。
NumCallsCompletedRecentDWORD4+20+20直近で完了した呼び出し回数。
NumCallsFailedRecentDWORD4+24+24直近で失敗した呼び出し回数。
NumCallsCompletedTotalDWORD4+28+28完了した呼び出しの累計回数。
NumCallsFailedTotalDWORD4+32+32失敗した呼び出しの累計回数。
Reserved1DWORD4+36+36予約フィールド1。将来の使用のため確保される。
Reserved2DWORD4+40+40予約フィールド2。将来の使用のため確保される。
Reserved3DWORD4+44+44予約フィールド3。将来の使用のため確保される。
Reserved4DWORD4+48+48予約フィールド4。将来の使用のため確保される。

各言語での定義

#include <windows.h>

// ComponentStatistics  (x64 52 / x86 52 バイト)
typedef struct ComponentStatistics {
    DWORD NumInstances;
    DWORD NumBoundReferences;
    DWORD NumPooledObjects;
    DWORD NumObjectsInCall;
    DWORD AvgResponseTimeInMs;
    DWORD NumCallsCompletedRecent;
    DWORD NumCallsFailedRecent;
    DWORD NumCallsCompletedTotal;
    DWORD NumCallsFailedTotal;
    DWORD Reserved1;
    DWORD Reserved2;
    DWORD Reserved3;
    DWORD Reserved4;
} ComponentStatistics;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct ComponentStatistics
{
    public uint NumInstances;
    public uint NumBoundReferences;
    public uint NumPooledObjects;
    public uint NumObjectsInCall;
    public uint AvgResponseTimeInMs;
    public uint NumCallsCompletedRecent;
    public uint NumCallsFailedRecent;
    public uint NumCallsCompletedTotal;
    public uint NumCallsFailedTotal;
    public uint Reserved1;
    public uint Reserved2;
    public uint Reserved3;
    public uint Reserved4;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure ComponentStatistics
    Public NumInstances As UInteger
    Public NumBoundReferences As UInteger
    Public NumPooledObjects As UInteger
    Public NumObjectsInCall As UInteger
    Public AvgResponseTimeInMs As UInteger
    Public NumCallsCompletedRecent As UInteger
    Public NumCallsFailedRecent As UInteger
    Public NumCallsCompletedTotal As UInteger
    Public NumCallsFailedTotal As UInteger
    Public Reserved1 As UInteger
    Public Reserved2 As UInteger
    Public Reserved3 As UInteger
    Public Reserved4 As UInteger
End Structure
import ctypes
from ctypes import wintypes

class ComponentStatistics(ctypes.Structure):
    _fields_ = [
        ("NumInstances", wintypes.DWORD),
        ("NumBoundReferences", wintypes.DWORD),
        ("NumPooledObjects", wintypes.DWORD),
        ("NumObjectsInCall", wintypes.DWORD),
        ("AvgResponseTimeInMs", wintypes.DWORD),
        ("NumCallsCompletedRecent", wintypes.DWORD),
        ("NumCallsFailedRecent", wintypes.DWORD),
        ("NumCallsCompletedTotal", wintypes.DWORD),
        ("NumCallsFailedTotal", wintypes.DWORD),
        ("Reserved1", wintypes.DWORD),
        ("Reserved2", wintypes.DWORD),
        ("Reserved3", wintypes.DWORD),
        ("Reserved4", wintypes.DWORD),
    ]
#[repr(C)]
pub struct ComponentStatistics {
    pub NumInstances: u32,
    pub NumBoundReferences: u32,
    pub NumPooledObjects: u32,
    pub NumObjectsInCall: u32,
    pub AvgResponseTimeInMs: u32,
    pub NumCallsCompletedRecent: u32,
    pub NumCallsFailedRecent: u32,
    pub NumCallsCompletedTotal: u32,
    pub NumCallsFailedTotal: u32,
    pub Reserved1: u32,
    pub Reserved2: u32,
    pub Reserved3: u32,
    pub Reserved4: u32,
}
import "golang.org/x/sys/windows"

type ComponentStatistics struct {
	NumInstances uint32
	NumBoundReferences uint32
	NumPooledObjects uint32
	NumObjectsInCall uint32
	AvgResponseTimeInMs uint32
	NumCallsCompletedRecent uint32
	NumCallsFailedRecent uint32
	NumCallsCompletedTotal uint32
	NumCallsFailedTotal uint32
	Reserved1 uint32
	Reserved2 uint32
	Reserved3 uint32
	Reserved4 uint32
}
type
  ComponentStatistics = record
    NumInstances: DWORD;
    NumBoundReferences: DWORD;
    NumPooledObjects: DWORD;
    NumObjectsInCall: DWORD;
    AvgResponseTimeInMs: DWORD;
    NumCallsCompletedRecent: DWORD;
    NumCallsFailedRecent: DWORD;
    NumCallsCompletedTotal: DWORD;
    NumCallsFailedTotal: DWORD;
    Reserved1: DWORD;
    Reserved2: DWORD;
    Reserved3: DWORD;
    Reserved4: DWORD;
  end;
const ComponentStatistics = extern struct {
    NumInstances: u32,
    NumBoundReferences: u32,
    NumPooledObjects: u32,
    NumObjectsInCall: u32,
    AvgResponseTimeInMs: u32,
    NumCallsCompletedRecent: u32,
    NumCallsFailedRecent: u32,
    NumCallsCompletedTotal: u32,
    NumCallsFailedTotal: u32,
    Reserved1: u32,
    Reserved2: u32,
    Reserved3: u32,
    Reserved4: u32,
};
type
  ComponentStatistics {.bycopy.} = object
    NumInstances: uint32
    NumBoundReferences: uint32
    NumPooledObjects: uint32
    NumObjectsInCall: uint32
    AvgResponseTimeInMs: uint32
    NumCallsCompletedRecent: uint32
    NumCallsFailedRecent: uint32
    NumCallsCompletedTotal: uint32
    NumCallsFailedTotal: uint32
    Reserved1: uint32
    Reserved2: uint32
    Reserved3: uint32
    Reserved4: uint32
struct ComponentStatistics
{
    uint NumInstances;
    uint NumBoundReferences;
    uint NumPooledObjects;
    uint NumObjectsInCall;
    uint AvgResponseTimeInMs;
    uint NumCallsCompletedRecent;
    uint NumCallsFailedRecent;
    uint NumCallsCompletedTotal;
    uint NumCallsFailedTotal;
    uint Reserved1;
    uint Reserved2;
    uint Reserved3;
    uint Reserved4;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; ComponentStatistics サイズ: 52 バイト(x64)
dim st, 13    ; 4byte整数×13(構造体サイズ 52 / 4 切り上げ)
; NumInstances : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; NumBoundReferences : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; NumPooledObjects : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; NumObjectsInCall : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; AvgResponseTimeInMs : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; NumCallsCompletedRecent : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; NumCallsFailedRecent : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; NumCallsCompletedTotal : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; NumCallsFailedTotal : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; Reserved1 : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; Reserved2 : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; Reserved3 : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; Reserved4 : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global ComponentStatistics
    #field int NumInstances
    #field int NumBoundReferences
    #field int NumPooledObjects
    #field int NumObjectsInCall
    #field int AvgResponseTimeInMs
    #field int NumCallsCompletedRecent
    #field int NumCallsFailedRecent
    #field int NumCallsCompletedTotal
    #field int NumCallsFailedTotal
    #field int Reserved1
    #field int Reserved2
    #field int Reserved3
    #field int Reserved4
#endstruct

stdim st, ComponentStatistics        ; NSTRUCT 変数を確保
st->NumInstances = 100
mes "NumInstances=" + st->NumInstances