ホーム › UI.WindowsAndMessaging › TOUCHPAD_PARAMETERS_V1
TOUCHPAD_PARAMETERS_V1
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| versionNumber | DWORD | 4 | +0 | +0 | この構造体のバージョン番号である。 |
| maxSupportedContacts | DWORD | 4 | +4 | +4 | サポートされる最大同時接触点数である。 |
| legacyTouchpadFeatures | LEGACY_TOUCHPAD_FEATURES | 4 | +8 | +8 | 従来のタッチパッド機能を示すフラグである。 |
| _bitfield1 | INT | 4 | +12 | +12 | 各種の有効/無効設定をまとめたビットフィールドである。 |
| _bitfield2 | INT | 4 | +16 | +16 | 各種の有効/無効設定をまとめたビットフィールドである。 |
| sensitivityLevel | TOUCHPAD_SENSITIVITY_LEVEL | 4 | +20 | +20 | タッチパッドの感度レベルである。 |
| cursorSpeed | DWORD | 4 | +24 | +24 | カーソルの移動速度である。 |
| feedbackIntensity | DWORD | 4 | +28 | +28 | 触覚フィードバックの強度である。 |
| clickForceSensitivity | DWORD | 4 | +32 | +32 | クリック押下力の感度である。 |
| rightClickZoneWidth | DWORD | 4 | +36 | +36 | 右クリックゾーンの幅である。 |
| rightClickZoneHeight | DWORD | 4 | +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 Structureimport 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: uint32struct 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