Win32 API 日本語リファレンス
ホームData.HtmlHelp › HH_WINTYPE

HH_WINTYPE

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

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

フィールド

フィールドサイズx64x86説明
cbStructINT4+0+0この構造体のサイズ(バイト)。
fUniCodeStringsBOOL4+4+4構造体内の文字列をUnicodeとして扱うかどうかのフラグ。
pszTypeCHAR*8/4+8+8ウィンドウタイプの名前へのポインタ(ASCII)。
fsValidMembersDWORD4+16+12どのメンバが有効かを示すビットフラグ。
fsWinPropertiesDWORD4+20+16ウィンドウのプロパティ(自動同期等)を示すビットフラグ。
pszCaptionCHAR*8/4+24+20ヘルプウィンドウのタイトルバー文字列(ASCII)。
dwStylesDWORD4+32+24ヘルプウィンドウのウィンドウスタイル。
dwExStylesDWORD4+36+28ヘルプウィンドウの拡張ウィンドウスタイル。
rcWindowPosRECT16+40+32ウィンドウの初期位置とサイズを示す矩形(RECT)。
nShowStateINT4+56+48ウィンドウの初期表示状態(ShowWindowのコマンド値)。
hwndHelpHWND8/4+64+52ヘルプウィンドウのウィンドウハンドル。
hwndCallerHWND8/4+72+56ヘルプを呼び出した側のウィンドウハンドル。通知の送信先。
paInfoTypesDWORD*8/4+80+60現在の情報タイプ集合を示すビットベクタへのポインタ。
hwndToolBarHWND8/4+88+64ツールバーのウィンドウハンドル。
hwndNavigationHWND8/4+96+68ナビゲーションペインのウィンドウハンドル。
hwndHTMLHWND8/4+104+72HTMLトピック表示ペインのウィンドウハンドル。
iNavWidthINT4+112+76ナビゲーションペインの幅(ピクセル)。
rcHTMLRECT16+116+80HTMLペインの矩形(RECT)。
pszTocCHAR*8/4+136+96目次ファイル(.hhc)のパスへのポインタ(ASCII)。NULL可。
pszIndexCHAR*8/4+144+100インデックスファイル(.hhk)のパスへのポインタ(ASCII)。NULL可。
pszFileCHAR*8/4+152+104既定で表示するトピックファイルへのポインタ(ASCII)。
pszHomeCHAR*8/4+160+108ホームボタンが指すトピックへのポインタ(ASCII)。NULL可。
fsToolBarFlagsDWORD4+168+112表示するツールバーボタンを示すビットフラグ。
fNotExpandedBOOL4+172+116目次を初期状態で折り畳むかどうかのフラグ。
curNavTypeINT4+176+120現在選択されているナビゲーションタブの種別。
tabposINT4+180+124ナビゲーションタブの表示位置。
idNotifyINT4+184+128ウィンドウからの通知に付与する識別子。
tabOrderBYTE20+188+132ナビゲーションタブの表示順を示すバイト配列。
cHistoryINT4+208+152保持する履歴項目の最大数。
pszJump1CHAR*8/4+216+156カスタムジャンプボタン1のテキストへのポインタ(ASCII)。NULL可。
pszJump2CHAR*8/4+224+160カスタムジャンプボタン2のテキストへのポインタ(ASCII)。NULL可。
pszUrlJump1CHAR*8/4+232+164ジャンプボタン1が開くURLへのポインタ(ASCII)。NULL可。
pszUrlJump2CHAR*8/4+240+168ジャンプボタン2が開くURLへのポインタ(ASCII)。NULL可。
rcMinSizeRECT16+248+172ウィンドウの最小サイズを示す矩形(RECT)。未使用の場合あり。
cbInfoTypesINT4+264+188情報タイプビットベクタのバイト数。
pszCustomTabsCHAR*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 Structure
import 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: pointer
struct 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