Win32 API 日本語リファレンス
ホームUI.WindowsAndMessaging › TOUCHPAD_PARAMETERS_V1

TOUCHPAD_PARAMETERS_V1

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

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

フィールド

フィールドサイズx64x86説明
versionNumberDWORD4+0+0この構造体のバージョン番号である。
maxSupportedContactsDWORD4+4+4サポートされる最大同時接触点数である。
legacyTouchpadFeaturesLEGACY_TOUCHPAD_FEATURES4+8+8従来のタッチパッド機能を示すフラグである。
_bitfield1INT4+12+12各種の有効/無効設定をまとめたビットフィールドである。
_bitfield2INT4+16+16各種の有効/無効設定をまとめたビットフィールドである。
sensitivityLevelTOUCHPAD_SENSITIVITY_LEVEL4+20+20タッチパッドの感度レベルである。
cursorSpeedDWORD4+24+24カーソルの移動速度である。
feedbackIntensityDWORD4+28+28触覚フィードバックの強度である。
clickForceSensitivityDWORD4+32+32クリック押下力の感度である。
rightClickZoneWidthDWORD4+36+36右クリックゾーンの幅である。
rightClickZoneHeightDWORD4+40+40右クリックゾーンの高さである。

各言語での定義

#include <windows.h>

// TOUCHPAD_PARAMETERS_V1  (x64 44 / x86 44 バイト)
typedef struct TOUCHPAD_PARAMETERS_V1 {
    DWORD versionNumber;
    DWORD maxSupportedContacts;
    LEGACY_TOUCHPAD_FEATURES legacyTouchpadFeatures;
    INT _bitfield1;
    INT _bitfield2;
    TOUCHPAD_SENSITIVITY_LEVEL sensitivityLevel;
    DWORD cursorSpeed;
    DWORD feedbackIntensity;
    DWORD clickForceSensitivity;
    DWORD rightClickZoneWidth;
    DWORD rightClickZoneHeight;
} TOUCHPAD_PARAMETERS_V1;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct TOUCHPAD_PARAMETERS_V1
{
    public uint versionNumber;
    public uint maxSupportedContacts;
    public int legacyTouchpadFeatures;
    public int _bitfield1;
    public int _bitfield2;
    public int sensitivityLevel;
    public uint cursorSpeed;
    public uint feedbackIntensity;
    public uint clickForceSensitivity;
    public uint rightClickZoneWidth;
    public uint rightClickZoneHeight;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure TOUCHPAD_PARAMETERS_V1
    Public versionNumber As UInteger
    Public maxSupportedContacts As UInteger
    Public legacyTouchpadFeatures As Integer
    Public _bitfield1 As Integer
    Public _bitfield2 As Integer
    Public sensitivityLevel As Integer
    Public cursorSpeed As UInteger
    Public feedbackIntensity As UInteger
    Public clickForceSensitivity As UInteger
    Public rightClickZoneWidth As UInteger
    Public rightClickZoneHeight As UInteger
End Structure
import ctypes
from ctypes import wintypes

class TOUCHPAD_PARAMETERS_V1(ctypes.Structure):
    _fields_ = [
        ("versionNumber", wintypes.DWORD),
        ("maxSupportedContacts", wintypes.DWORD),
        ("legacyTouchpadFeatures", ctypes.c_int),
        ("_bitfield1", ctypes.c_int),
        ("_bitfield2", ctypes.c_int),
        ("sensitivityLevel", ctypes.c_int),
        ("cursorSpeed", wintypes.DWORD),
        ("feedbackIntensity", wintypes.DWORD),
        ("clickForceSensitivity", wintypes.DWORD),
        ("rightClickZoneWidth", wintypes.DWORD),
        ("rightClickZoneHeight", wintypes.DWORD),
    ]
#[repr(C)]
pub struct TOUCHPAD_PARAMETERS_V1 {
    pub versionNumber: u32,
    pub maxSupportedContacts: u32,
    pub legacyTouchpadFeatures: i32,
    pub _bitfield1: i32,
    pub _bitfield2: i32,
    pub sensitivityLevel: i32,
    pub cursorSpeed: u32,
    pub feedbackIntensity: u32,
    pub clickForceSensitivity: u32,
    pub rightClickZoneWidth: u32,
    pub rightClickZoneHeight: u32,
}
import "golang.org/x/sys/windows"

type TOUCHPAD_PARAMETERS_V1 struct {
	versionNumber uint32
	maxSupportedContacts uint32
	legacyTouchpadFeatures int32
	_bitfield1 int32
	_bitfield2 int32
	sensitivityLevel int32
	cursorSpeed uint32
	feedbackIntensity uint32
	clickForceSensitivity uint32
	rightClickZoneWidth uint32
	rightClickZoneHeight uint32
}
type
  TOUCHPAD_PARAMETERS_V1 = record
    versionNumber: DWORD;
    maxSupportedContacts: DWORD;
    legacyTouchpadFeatures: Integer;
    _bitfield1: Integer;
    _bitfield2: Integer;
    sensitivityLevel: Integer;
    cursorSpeed: DWORD;
    feedbackIntensity: DWORD;
    clickForceSensitivity: DWORD;
    rightClickZoneWidth: DWORD;
    rightClickZoneHeight: DWORD;
  end;
const TOUCHPAD_PARAMETERS_V1 = extern struct {
    versionNumber: u32,
    maxSupportedContacts: u32,
    legacyTouchpadFeatures: i32,
    _bitfield1: i32,
    _bitfield2: i32,
    sensitivityLevel: i32,
    cursorSpeed: u32,
    feedbackIntensity: u32,
    clickForceSensitivity: u32,
    rightClickZoneWidth: u32,
    rightClickZoneHeight: u32,
};
type
  TOUCHPAD_PARAMETERS_V1 {.bycopy.} = object
    versionNumber: uint32
    maxSupportedContacts: uint32
    legacyTouchpadFeatures: int32
    _bitfield1: int32
    _bitfield2: int32
    sensitivityLevel: int32
    cursorSpeed: uint32
    feedbackIntensity: uint32
    clickForceSensitivity: uint32
    rightClickZoneWidth: uint32
    rightClickZoneHeight: uint32
struct TOUCHPAD_PARAMETERS_V1
{
    uint versionNumber;
    uint maxSupportedContacts;
    int legacyTouchpadFeatures;
    int _bitfield1;
    int _bitfield2;
    int sensitivityLevel;
    uint cursorSpeed;
    uint feedbackIntensity;
    uint clickForceSensitivity;
    uint rightClickZoneWidth;
    uint rightClickZoneHeight;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; TOUCHPAD_PARAMETERS_V1 サイズ: 44 バイト(x64)
dim st, 11    ; 4byte整数×11(構造体サイズ 44 / 4 切り上げ)
; versionNumber : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; maxSupportedContacts : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; legacyTouchpadFeatures : LEGACY_TOUCHPAD_FEATURES (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; _bitfield1 : INT (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; _bitfield2 : INT (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; sensitivityLevel : TOUCHPAD_SENSITIVITY_LEVEL (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; cursorSpeed : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; feedbackIntensity : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; clickForceSensitivity : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; rightClickZoneWidth : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; rightClickZoneHeight : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global TOUCHPAD_PARAMETERS_V1
    #field int versionNumber
    #field int maxSupportedContacts
    #field int legacyTouchpadFeatures
    #field int _bitfield1
    #field int _bitfield2
    #field int sensitivityLevel
    #field int cursorSpeed
    #field int feedbackIntensity
    #field int clickForceSensitivity
    #field int rightClickZoneWidth
    #field int rightClickZoneHeight
#endstruct

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