ホーム › Data.HtmlHelp › HH_WINTYPE
HH_WINTYPE
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| cbStruct | INT | 4 | +0 | +0 | この構造体のサイズ(バイト)。 |
| fUniCodeStrings | BOOL | 4 | +4 | +4 | 構造体内の文字列をUnicodeとして扱うかどうかのフラグ。 |
| pszType | CHAR* | 8/4 | +8 | +8 | ウィンドウタイプの名前へのポインタ(ASCII)。 |
| fsValidMembers | DWORD | 4 | +16 | +12 | どのメンバが有効かを示すビットフラグ。 |
| fsWinProperties | DWORD | 4 | +20 | +16 | ウィンドウのプロパティ(自動同期等)を示すビットフラグ。 |
| pszCaption | CHAR* | 8/4 | +24 | +20 | ヘルプウィンドウのタイトルバー文字列(ASCII)。 |
| dwStyles | DWORD | 4 | +32 | +24 | ヘルプウィンドウのウィンドウスタイル。 |
| dwExStyles | DWORD | 4 | +36 | +28 | ヘルプウィンドウの拡張ウィンドウスタイル。 |
| rcWindowPos | RECT | 16 | +40 | +32 | ウィンドウの初期位置とサイズを示す矩形(RECT)。 |
| nShowState | INT | 4 | +56 | +48 | ウィンドウの初期表示状態(ShowWindowのコマンド値)。 |
| hwndHelp | HWND | 8/4 | +64 | +52 | ヘルプウィンドウのウィンドウハンドル。 |
| hwndCaller | HWND | 8/4 | +72 | +56 | ヘルプを呼び出した側のウィンドウハンドル。通知の送信先。 |
| paInfoTypes | DWORD* | 8/4 | +80 | +60 | 現在の情報タイプ集合を示すビットベクタへのポインタ。 |
| hwndToolBar | HWND | 8/4 | +88 | +64 | ツールバーのウィンドウハンドル。 |
| hwndNavigation | HWND | 8/4 | +96 | +68 | ナビゲーションペインのウィンドウハンドル。 |
| hwndHTML | HWND | 8/4 | +104 | +72 | HTMLトピック表示ペインのウィンドウハンドル。 |
| iNavWidth | INT | 4 | +112 | +76 | ナビゲーションペインの幅(ピクセル)。 |
| rcHTML | RECT | 16 | +116 | +80 | HTMLペインの矩形(RECT)。 |
| pszToc | CHAR* | 8/4 | +136 | +96 | 目次ファイル(.hhc)のパスへのポインタ(ASCII)。NULL可。 |
| pszIndex | CHAR* | 8/4 | +144 | +100 | インデックスファイル(.hhk)のパスへのポインタ(ASCII)。NULL可。 |
| pszFile | CHAR* | 8/4 | +152 | +104 | 既定で表示するトピックファイルへのポインタ(ASCII)。 |
| pszHome | CHAR* | 8/4 | +160 | +108 | ホームボタンが指すトピックへのポインタ(ASCII)。NULL可。 |
| fsToolBarFlags | DWORD | 4 | +168 | +112 | 表示するツールバーボタンを示すビットフラグ。 |
| fNotExpanded | BOOL | 4 | +172 | +116 | 目次を初期状態で折り畳むかどうかのフラグ。 |
| curNavType | INT | 4 | +176 | +120 | 現在選択されているナビゲーションタブの種別。 |
| tabpos | INT | 4 | +180 | +124 | ナビゲーションタブの表示位置。 |
| idNotify | INT | 4 | +184 | +128 | ウィンドウからの通知に付与する識別子。 |
| tabOrder | BYTE | 20 | +188 | +132 | ナビゲーションタブの表示順を示すバイト配列。 |
| cHistory | INT | 4 | +208 | +152 | 保持する履歴項目の最大数。 |
| pszJump1 | CHAR* | 8/4 | +216 | +156 | カスタムジャンプボタン1のテキストへのポインタ(ASCII)。NULL可。 |
| pszJump2 | CHAR* | 8/4 | +224 | +160 | カスタムジャンプボタン2のテキストへのポインタ(ASCII)。NULL可。 |
| pszUrlJump1 | CHAR* | 8/4 | +232 | +164 | ジャンプボタン1が開くURLへのポインタ(ASCII)。NULL可。 |
| pszUrlJump2 | CHAR* | 8/4 | +240 | +168 | ジャンプボタン2が開くURLへのポインタ(ASCII)。NULL可。 |
| rcMinSize | RECT | 16 | +248 | +172 | ウィンドウの最小サイズを示す矩形(RECT)。未使用の場合あり。 |
| cbInfoTypes | INT | 4 | +264 | +188 | 情報タイプビットベクタのバイト数。 |
| pszCustomTabs | CHAR* | 8/4 | +272 | +192 | カスタムタブの定義文字列へのポインタ(ASCII)。NULL可。 |
各言語での定義
#include <windows.h>
// RECT (x64 16 / x86 16 バイト)
typedef struct RECT {
INT left;
INT top;
INT right;
INT bottom;
} RECT;
// HH_WINTYPE (x64 280 / x86 196 バイト)
typedef struct HH_WINTYPE {
INT cbStruct;
BOOL fUniCodeStrings;
CHAR* pszType;
DWORD fsValidMembers;
DWORD fsWinProperties;
CHAR* pszCaption;
DWORD dwStyles;
DWORD dwExStyles;
RECT rcWindowPos;
INT nShowState;
HWND hwndHelp;
HWND hwndCaller;
DWORD* paInfoTypes;
HWND hwndToolBar;
HWND hwndNavigation;
HWND hwndHTML;
INT iNavWidth;
RECT rcHTML;
CHAR* pszToc;
CHAR* pszIndex;
CHAR* pszFile;
CHAR* pszHome;
DWORD fsToolBarFlags;
BOOL fNotExpanded;
INT curNavType;
INT tabpos;
INT idNotify;
BYTE tabOrder[20];
INT cHistory;
CHAR* pszJump1;
CHAR* pszJump2;
CHAR* pszUrlJump1;
CHAR* pszUrlJump2;
RECT rcMinSize;
INT cbInfoTypes;
CHAR* pszCustomTabs;
} HH_WINTYPE;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct HH_WINTYPE
{
public int cbStruct;
[MarshalAs(UnmanagedType.Bool)] public bool fUniCodeStrings;
public IntPtr pszType;
public uint fsValidMembers;
public uint fsWinProperties;
public IntPtr pszCaption;
public uint dwStyles;
public uint dwExStyles;
public RECT rcWindowPos;
public int nShowState;
public IntPtr hwndHelp;
public IntPtr hwndCaller;
public IntPtr paInfoTypes;
public IntPtr hwndToolBar;
public IntPtr hwndNavigation;
public IntPtr hwndHTML;
public int iNavWidth;
public RECT rcHTML;
public IntPtr pszToc;
public IntPtr pszIndex;
public IntPtr pszFile;
public IntPtr pszHome;
public uint fsToolBarFlags;
[MarshalAs(UnmanagedType.Bool)] public bool fNotExpanded;
public int curNavType;
public int tabpos;
public int idNotify;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] public byte[] tabOrder;
public int cHistory;
public IntPtr pszJump1;
public IntPtr pszJump2;
public IntPtr pszUrlJump1;
public IntPtr pszUrlJump2;
public RECT rcMinSize;
public int cbInfoTypes;
public IntPtr pszCustomTabs;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure RECT
Public left As Integer
Public top As Integer
Public right As Integer
Public bottom As Integer
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure HH_WINTYPE
Public cbStruct As Integer
<MarshalAs(UnmanagedType.Bool)> Public fUniCodeStrings As Boolean
Public pszType As IntPtr
Public fsValidMembers As UInteger
Public fsWinProperties As UInteger
Public pszCaption As IntPtr
Public dwStyles As UInteger
Public dwExStyles As UInteger
Public rcWindowPos As RECT
Public nShowState As Integer
Public hwndHelp As IntPtr
Public hwndCaller As IntPtr
Public paInfoTypes As IntPtr
Public hwndToolBar As IntPtr
Public hwndNavigation As IntPtr
Public hwndHTML As IntPtr
Public iNavWidth As Integer
Public rcHTML As RECT
Public pszToc As IntPtr
Public pszIndex As IntPtr
Public pszFile As IntPtr
Public pszHome As IntPtr
Public fsToolBarFlags As UInteger
<MarshalAs(UnmanagedType.Bool)> Public fNotExpanded As Boolean
Public curNavType As Integer
Public tabpos As Integer
Public idNotify As Integer
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=20)> Public tabOrder() As Byte
Public cHistory As Integer
Public pszJump1 As IntPtr
Public pszJump2 As IntPtr
Public pszUrlJump1 As IntPtr
Public pszUrlJump2 As IntPtr
Public rcMinSize As RECT
Public cbInfoTypes As Integer
Public pszCustomTabs As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class RECT(ctypes.Structure):
_fields_ = [
("left", ctypes.c_int),
("top", ctypes.c_int),
("right", ctypes.c_int),
("bottom", ctypes.c_int),
]
class HH_WINTYPE(ctypes.Structure):
_fields_ = [
("cbStruct", ctypes.c_int),
("fUniCodeStrings", wintypes.BOOL),
("pszType", ctypes.c_void_p),
("fsValidMembers", wintypes.DWORD),
("fsWinProperties", wintypes.DWORD),
("pszCaption", ctypes.c_void_p),
("dwStyles", wintypes.DWORD),
("dwExStyles", wintypes.DWORD),
("rcWindowPos", RECT),
("nShowState", ctypes.c_int),
("hwndHelp", ctypes.c_void_p),
("hwndCaller", ctypes.c_void_p),
("paInfoTypes", ctypes.c_void_p),
("hwndToolBar", ctypes.c_void_p),
("hwndNavigation", ctypes.c_void_p),
("hwndHTML", ctypes.c_void_p),
("iNavWidth", ctypes.c_int),
("rcHTML", RECT),
("pszToc", ctypes.c_void_p),
("pszIndex", ctypes.c_void_p),
("pszFile", ctypes.c_void_p),
("pszHome", ctypes.c_void_p),
("fsToolBarFlags", wintypes.DWORD),
("fNotExpanded", wintypes.BOOL),
("curNavType", ctypes.c_int),
("tabpos", ctypes.c_int),
("idNotify", ctypes.c_int),
("tabOrder", ctypes.c_ubyte * 20),
("cHistory", ctypes.c_int),
("pszJump1", ctypes.c_void_p),
("pszJump2", ctypes.c_void_p),
("pszUrlJump1", ctypes.c_void_p),
("pszUrlJump2", ctypes.c_void_p),
("rcMinSize", RECT),
("cbInfoTypes", ctypes.c_int),
("pszCustomTabs", ctypes.c_void_p),
]#[repr(C)]
pub struct RECT {
pub left: i32,
pub top: i32,
pub right: i32,
pub bottom: i32,
}
#[repr(C)]
pub struct HH_WINTYPE {
pub cbStruct: i32,
pub fUniCodeStrings: i32,
pub pszType: *mut core::ffi::c_void,
pub fsValidMembers: u32,
pub fsWinProperties: u32,
pub pszCaption: *mut core::ffi::c_void,
pub dwStyles: u32,
pub dwExStyles: u32,
pub rcWindowPos: RECT,
pub nShowState: i32,
pub hwndHelp: *mut core::ffi::c_void,
pub hwndCaller: *mut core::ffi::c_void,
pub paInfoTypes: *mut core::ffi::c_void,
pub hwndToolBar: *mut core::ffi::c_void,
pub hwndNavigation: *mut core::ffi::c_void,
pub hwndHTML: *mut core::ffi::c_void,
pub iNavWidth: i32,
pub rcHTML: RECT,
pub pszToc: *mut core::ffi::c_void,
pub pszIndex: *mut core::ffi::c_void,
pub pszFile: *mut core::ffi::c_void,
pub pszHome: *mut core::ffi::c_void,
pub fsToolBarFlags: u32,
pub fNotExpanded: i32,
pub curNavType: i32,
pub tabpos: i32,
pub idNotify: i32,
pub tabOrder: [u8; 20],
pub cHistory: i32,
pub pszJump1: *mut core::ffi::c_void,
pub pszJump2: *mut core::ffi::c_void,
pub pszUrlJump1: *mut core::ffi::c_void,
pub pszUrlJump2: *mut core::ffi::c_void,
pub rcMinSize: RECT,
pub cbInfoTypes: i32,
pub pszCustomTabs: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type RECT struct {
left int32
top int32
right int32
bottom int32
}
type HH_WINTYPE struct {
cbStruct int32
fUniCodeStrings int32
pszType uintptr
fsValidMembers uint32
fsWinProperties uint32
pszCaption uintptr
dwStyles uint32
dwExStyles uint32
rcWindowPos RECT
nShowState int32
hwndHelp uintptr
hwndCaller uintptr
paInfoTypes uintptr
hwndToolBar uintptr
hwndNavigation uintptr
hwndHTML uintptr
iNavWidth int32
rcHTML RECT
pszToc uintptr
pszIndex uintptr
pszFile uintptr
pszHome uintptr
fsToolBarFlags uint32
fNotExpanded int32
curNavType int32
tabpos int32
idNotify int32
tabOrder [20]byte
cHistory int32
pszJump1 uintptr
pszJump2 uintptr
pszUrlJump1 uintptr
pszUrlJump2 uintptr
rcMinSize RECT
cbInfoTypes int32
pszCustomTabs uintptr
}type
RECT = record
left: Integer;
top: Integer;
right: Integer;
bottom: Integer;
end;
HH_WINTYPE = record
cbStruct: Integer;
fUniCodeStrings: BOOL;
pszType: Pointer;
fsValidMembers: DWORD;
fsWinProperties: DWORD;
pszCaption: Pointer;
dwStyles: DWORD;
dwExStyles: DWORD;
rcWindowPos: RECT;
nShowState: Integer;
hwndHelp: Pointer;
hwndCaller: Pointer;
paInfoTypes: Pointer;
hwndToolBar: Pointer;
hwndNavigation: Pointer;
hwndHTML: Pointer;
iNavWidth: Integer;
rcHTML: RECT;
pszToc: Pointer;
pszIndex: Pointer;
pszFile: Pointer;
pszHome: Pointer;
fsToolBarFlags: DWORD;
fNotExpanded: BOOL;
curNavType: Integer;
tabpos: Integer;
idNotify: Integer;
tabOrder: array[0..19] of Byte;
cHistory: Integer;
pszJump1: Pointer;
pszJump2: Pointer;
pszUrlJump1: Pointer;
pszUrlJump2: Pointer;
rcMinSize: RECT;
cbInfoTypes: Integer;
pszCustomTabs: Pointer;
end;const RECT = extern struct {
left: i32,
top: i32,
right: i32,
bottom: i32,
};
const HH_WINTYPE = extern struct {
cbStruct: i32,
fUniCodeStrings: i32,
pszType: ?*anyopaque,
fsValidMembers: u32,
fsWinProperties: u32,
pszCaption: ?*anyopaque,
dwStyles: u32,
dwExStyles: u32,
rcWindowPos: RECT,
nShowState: i32,
hwndHelp: ?*anyopaque,
hwndCaller: ?*anyopaque,
paInfoTypes: ?*anyopaque,
hwndToolBar: ?*anyopaque,
hwndNavigation: ?*anyopaque,
hwndHTML: ?*anyopaque,
iNavWidth: i32,
rcHTML: RECT,
pszToc: ?*anyopaque,
pszIndex: ?*anyopaque,
pszFile: ?*anyopaque,
pszHome: ?*anyopaque,
fsToolBarFlags: u32,
fNotExpanded: i32,
curNavType: i32,
tabpos: i32,
idNotify: i32,
tabOrder: [20]u8,
cHistory: i32,
pszJump1: ?*anyopaque,
pszJump2: ?*anyopaque,
pszUrlJump1: ?*anyopaque,
pszUrlJump2: ?*anyopaque,
rcMinSize: RECT,
cbInfoTypes: i32,
pszCustomTabs: ?*anyopaque,
};type
RECT {.bycopy.} = object
left: int32
top: int32
right: int32
bottom: int32
HH_WINTYPE {.bycopy.} = object
cbStruct: int32
fUniCodeStrings: int32
pszType: pointer
fsValidMembers: uint32
fsWinProperties: uint32
pszCaption: pointer
dwStyles: uint32
dwExStyles: uint32
rcWindowPos: RECT
nShowState: int32
hwndHelp: pointer
hwndCaller: pointer
paInfoTypes: pointer
hwndToolBar: pointer
hwndNavigation: pointer
hwndHTML: pointer
iNavWidth: int32
rcHTML: RECT
pszToc: pointer
pszIndex: pointer
pszFile: pointer
pszHome: pointer
fsToolBarFlags: uint32
fNotExpanded: int32
curNavType: int32
tabpos: int32
idNotify: int32
tabOrder: array[20, uint8]
cHistory: int32
pszJump1: pointer
pszJump2: pointer
pszUrlJump1: pointer
pszUrlJump2: pointer
rcMinSize: RECT
cbInfoTypes: int32
pszCustomTabs: pointerstruct RECT
{
int left;
int top;
int right;
int bottom;
}
struct HH_WINTYPE
{
int cbStruct;
int fUniCodeStrings;
void* pszType;
uint fsValidMembers;
uint fsWinProperties;
void* pszCaption;
uint dwStyles;
uint dwExStyles;
RECT rcWindowPos;
int nShowState;
void* hwndHelp;
void* hwndCaller;
void* paInfoTypes;
void* hwndToolBar;
void* hwndNavigation;
void* hwndHTML;
int iNavWidth;
RECT rcHTML;
void* pszToc;
void* pszIndex;
void* pszFile;
void* pszHome;
uint fsToolBarFlags;
int fNotExpanded;
int curNavType;
int tabpos;
int idNotify;
ubyte[20] tabOrder;
int cHistory;
void* pszJump1;
void* pszJump2;
void* pszUrlJump1;
void* pszUrlJump2;
RECT rcMinSize;
int cbInfoTypes;
void* pszCustomTabs;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; HH_WINTYPE サイズ: 196 バイト(x86)
dim st, 49 ; 4byte整数×49(構造体サイズ 196 / 4 切り上げ)
; cbStruct : INT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; fUniCodeStrings : BOOL (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; pszType : CHAR* (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; fsValidMembers : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; fsWinProperties : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; pszCaption : CHAR* (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwStyles : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwExStyles : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; rcWindowPos : RECT (+32, 16byte) varptr(st)+32 を基点に操作(16byte:入れ子/配列)
; nShowState : INT (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; hwndHelp : HWND (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; hwndCaller : HWND (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; paInfoTypes : DWORD* (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; hwndToolBar : HWND (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; hwndNavigation : HWND (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; hwndHTML : HWND (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; iNavWidth : INT (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; rcHTML : RECT (+80, 16byte) varptr(st)+80 を基点に操作(16byte:入れ子/配列)
; pszToc : CHAR* (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; pszIndex : CHAR* (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; pszFile : CHAR* (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; pszHome : CHAR* (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; fsToolBarFlags : DWORD (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; fNotExpanded : BOOL (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; curNavType : INT (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; tabpos : INT (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; idNotify : INT (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; tabOrder : BYTE (+132, 20byte) varptr(st)+132 を基点に操作(20byte:入れ子/配列)
; cHistory : INT (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; pszJump1 : CHAR* (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; pszJump2 : CHAR* (+160, 4byte) st.40 = 値 / 値 = st.40 (lpoke/lpeek も可)
; pszUrlJump1 : CHAR* (+164, 4byte) st.41 = 値 / 値 = st.41 (lpoke/lpeek も可)
; pszUrlJump2 : CHAR* (+168, 4byte) st.42 = 値 / 値 = st.42 (lpoke/lpeek も可)
; rcMinSize : RECT (+172, 16byte) varptr(st)+172 を基点に操作(16byte:入れ子/配列)
; cbInfoTypes : INT (+188, 4byte) st.47 = 値 / 値 = st.47 (lpoke/lpeek も可)
; pszCustomTabs : CHAR* (+192, 4byte) st.48 = 値 / 値 = st.48 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; HH_WINTYPE サイズ: 280 バイト(x64)
dim st, 70 ; 4byte整数×70(構造体サイズ 280 / 4 切り上げ)
; cbStruct : INT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; fUniCodeStrings : BOOL (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; pszType : CHAR* (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; fsValidMembers : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; fsWinProperties : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; pszCaption : CHAR* (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; dwStyles : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwExStyles : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; rcWindowPos : RECT (+40, 16byte) varptr(st)+40 を基点に操作(16byte:入れ子/配列)
; nShowState : INT (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; hwndHelp : HWND (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; hwndCaller : HWND (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; paInfoTypes : DWORD* (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; hwndToolBar : HWND (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; hwndNavigation : HWND (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; hwndHTML : HWND (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; iNavWidth : INT (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; rcHTML : RECT (+116, 16byte) varptr(st)+116 を基点に操作(16byte:入れ子/配列)
; pszToc : CHAR* (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; pszIndex : CHAR* (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; pszFile : CHAR* (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; pszHome : CHAR* (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; fsToolBarFlags : DWORD (+168, 4byte) st.42 = 値 / 値 = st.42 (lpoke/lpeek も可)
; fNotExpanded : BOOL (+172, 4byte) st.43 = 値 / 値 = st.43 (lpoke/lpeek も可)
; curNavType : INT (+176, 4byte) st.44 = 値 / 値 = st.44 (lpoke/lpeek も可)
; tabpos : INT (+180, 4byte) st.45 = 値 / 値 = st.45 (lpoke/lpeek も可)
; idNotify : INT (+184, 4byte) st.46 = 値 / 値 = st.46 (lpoke/lpeek も可)
; tabOrder : BYTE (+188, 20byte) varptr(st)+188 を基点に操作(20byte:入れ子/配列)
; cHistory : INT (+208, 4byte) st.52 = 値 / 値 = st.52 (lpoke/lpeek も可)
; pszJump1 : CHAR* (+216, 8byte) qpoke st,216,値 / qpeek(st,216) ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; pszJump2 : CHAR* (+224, 8byte) qpoke st,224,値 / qpeek(st,224) ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; pszUrlJump1 : CHAR* (+232, 8byte) qpoke st,232,値 / qpeek(st,232) ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; pszUrlJump2 : CHAR* (+240, 8byte) qpoke st,240,値 / qpeek(st,240) ※IronHSPのみ。3.7/3.8は lpoke st,240,下位 : lpoke st,244,上位
; rcMinSize : RECT (+248, 16byte) varptr(st)+248 を基点に操作(16byte:入れ子/配列)
; cbInfoTypes : INT (+264, 4byte) st.66 = 値 / 値 = st.66 (lpoke/lpeek も可)
; pszCustomTabs : CHAR* (+272, 8byte) qpoke st,272,値 / qpeek(st,272) ※IronHSPのみ。3.7/3.8は lpoke st,272,下位 : lpoke st,276,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global RECT
#field int left
#field int top
#field int right
#field int bottom
#endstruct
#defstruct global HH_WINTYPE
#field int cbStruct
#field bool fUniCodeStrings
#field intptr pszType
#field int fsValidMembers
#field int fsWinProperties
#field intptr pszCaption
#field int dwStyles
#field int dwExStyles
#field RECT rcWindowPos
#field int nShowState
#field intptr hwndHelp
#field intptr hwndCaller
#field intptr paInfoTypes
#field intptr hwndToolBar
#field intptr hwndNavigation
#field intptr hwndHTML
#field int iNavWidth
#field RECT rcHTML
#field intptr pszToc
#field intptr pszIndex
#field intptr pszFile
#field intptr pszHome
#field int fsToolBarFlags
#field bool fNotExpanded
#field int curNavType
#field int tabpos
#field int idNotify
#field byte tabOrder 20
#field int cHistory
#field intptr pszJump1
#field intptr pszJump2
#field intptr pszUrlJump1
#field intptr pszUrlJump2
#field RECT rcMinSize
#field int cbInfoTypes
#field intptr pszCustomTabs
#endstruct
stdim st, HH_WINTYPE ; NSTRUCT 変数を確保
st->cbStruct = 100
mes "cbStruct=" + st->cbStruct