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

MI_ContextFT

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

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

フィールド

フィールドサイズx64x86説明
PostResultINT_PTR8/4+0+0操作の最終結果(成功/エラー)を返す関数ポインタ。
PostInstanceINT_PTR8/4+8+4結果インスタンスを呼び出し元に送る関数ポインタ。
PostIndicationINT_PTR8/4+16+8インディケーション(イベント)を送る関数ポインタ。
ConstructInstanceINT_PTR8/4+24+12クラスから空のインスタンスを構築する関数ポインタ。
ConstructParametersINT_PTR8/4+32+16メソッドのパラメータ構造体を構築する関数ポインタ。
NewInstanceINT_PTR8/4+40+20新しいインスタンスを生成する関数ポインタ。
NewDynamicInstanceINT_PTR8/4+48+24動的クラスの新規インスタンスを生成する関数ポインタ。
NewParametersINT_PTR8/4+56+28新しいパラメータインスタンスを生成する関数ポインタ。
CanceledINT_PTR8/4+64+32操作がキャンセルされたか確認する関数ポインタ。
GetLocaleINT_PTR8/4+72+36要求のロケール情報を取得する関数ポインタ。
RegisterCancelINT_PTR8/4+80+40キャンセル通知コールバックを登録する関数ポインタ。
RequestUnloadINT_PTR8/4+88+44プロバイダーのアンロードを要求する関数ポインタ。
RefuseUnloadINT_PTR8/4+96+48アンロードを拒否する関数ポインタ。
GetLocalSessionINT_PTR8/4+104+52ローカルセッションを取得する関数ポインタ。
SetStringOptionINT_PTR8/4+112+56文字列オプションを設定する関数ポインタ。
GetStringOptionINT_PTR8/4+120+60文字列オプションを取得する関数ポインタ。
GetNumberOptionINT_PTR8/4+128+64数値オプションを取得する関数ポインタ。
GetCustomOptionINT_PTR8/4+136+68カスタムオプションを取得する関数ポインタ。
GetCustomOptionCountINT_PTR8/4+144+72カスタムオプションの数を取得する関数ポインタ。
GetCustomOptionAtINT_PTR8/4+152+76インデックス指定でカスタムオプションを取得する関数ポインタ。
WriteMessageINT_PTR8/4+160+80クライアントへメッセージを書き込む関数ポインタ。
WriteProgressINT_PTR8/4+168+84進捗情報をクライアントへ書き込む関数ポインタ。
WriteStreamParameterINT_PTR8/4+176+88ストリーム出力パラメータを書き込む関数ポインタ。
WriteCimErrorINT_PTR8/4+184+92CIMエラーインスタンスを書き込む関数ポインタ。
PromptUserINT_PTR8/4+192+96ユーザーへ確認プロンプトを表示する関数ポインタ。
ShouldProcessINT_PTR8/4+200+100処理を実行すべきか確認する関数ポインタ。
ShouldContinueINT_PTR8/4+208+104処理を継続すべきか確認する関数ポインタ。
PostErrorINT_PTR8/4+216+108Win32エラーコードでエラーを返す関数ポインタ。
PostCimErrorINT_PTR8/4+224+112CIMエラーインスタンスでエラーを返す関数ポインタ。
WriteErrorINT_PTR8/4+232+116エラーインスタンスをクライアントへ書き込む関数ポインタ。

各言語での定義

#include <windows.h>

// MI_ContextFT  (x64 240 / x86 120 バイト)
typedef struct MI_ContextFT {
    INT_PTR PostResult;
    INT_PTR PostInstance;
    INT_PTR PostIndication;
    INT_PTR ConstructInstance;
    INT_PTR ConstructParameters;
    INT_PTR NewInstance;
    INT_PTR NewDynamicInstance;
    INT_PTR NewParameters;
    INT_PTR Canceled;
    INT_PTR GetLocale;
    INT_PTR RegisterCancel;
    INT_PTR RequestUnload;
    INT_PTR RefuseUnload;
    INT_PTR GetLocalSession;
    INT_PTR SetStringOption;
    INT_PTR GetStringOption;
    INT_PTR GetNumberOption;
    INT_PTR GetCustomOption;
    INT_PTR GetCustomOptionCount;
    INT_PTR GetCustomOptionAt;
    INT_PTR WriteMessage;
    INT_PTR WriteProgress;
    INT_PTR WriteStreamParameter;
    INT_PTR WriteCimError;
    INT_PTR PromptUser;
    INT_PTR ShouldProcess;
    INT_PTR ShouldContinue;
    INT_PTR PostError;
    INT_PTR PostCimError;
    INT_PTR WriteError;
} MI_ContextFT;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct MI_ContextFT
{
    public IntPtr PostResult;
    public IntPtr PostInstance;
    public IntPtr PostIndication;
    public IntPtr ConstructInstance;
    public IntPtr ConstructParameters;
    public IntPtr NewInstance;
    public IntPtr NewDynamicInstance;
    public IntPtr NewParameters;
    public IntPtr Canceled;
    public IntPtr GetLocale;
    public IntPtr RegisterCancel;
    public IntPtr RequestUnload;
    public IntPtr RefuseUnload;
    public IntPtr GetLocalSession;
    public IntPtr SetStringOption;
    public IntPtr GetStringOption;
    public IntPtr GetNumberOption;
    public IntPtr GetCustomOption;
    public IntPtr GetCustomOptionCount;
    public IntPtr GetCustomOptionAt;
    public IntPtr WriteMessage;
    public IntPtr WriteProgress;
    public IntPtr WriteStreamParameter;
    public IntPtr WriteCimError;
    public IntPtr PromptUser;
    public IntPtr ShouldProcess;
    public IntPtr ShouldContinue;
    public IntPtr PostError;
    public IntPtr PostCimError;
    public IntPtr WriteError;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure MI_ContextFT
    Public PostResult As IntPtr
    Public PostInstance As IntPtr
    Public PostIndication As IntPtr
    Public ConstructInstance As IntPtr
    Public ConstructParameters As IntPtr
    Public NewInstance As IntPtr
    Public NewDynamicInstance As IntPtr
    Public NewParameters As IntPtr
    Public Canceled As IntPtr
    Public GetLocale As IntPtr
    Public RegisterCancel As IntPtr
    Public RequestUnload As IntPtr
    Public RefuseUnload As IntPtr
    Public GetLocalSession As IntPtr
    Public SetStringOption As IntPtr
    Public GetStringOption As IntPtr
    Public GetNumberOption As IntPtr
    Public GetCustomOption As IntPtr
    Public GetCustomOptionCount As IntPtr
    Public GetCustomOptionAt As IntPtr
    Public WriteMessage As IntPtr
    Public WriteProgress As IntPtr
    Public WriteStreamParameter As IntPtr
    Public WriteCimError As IntPtr
    Public PromptUser As IntPtr
    Public ShouldProcess As IntPtr
    Public ShouldContinue As IntPtr
    Public PostError As IntPtr
    Public PostCimError As IntPtr
    Public WriteError As IntPtr
End Structure
import ctypes
from ctypes import wintypes

class MI_ContextFT(ctypes.Structure):
    _fields_ = [
        ("PostResult", ctypes.c_ssize_t),
        ("PostInstance", ctypes.c_ssize_t),
        ("PostIndication", ctypes.c_ssize_t),
        ("ConstructInstance", ctypes.c_ssize_t),
        ("ConstructParameters", ctypes.c_ssize_t),
        ("NewInstance", ctypes.c_ssize_t),
        ("NewDynamicInstance", ctypes.c_ssize_t),
        ("NewParameters", ctypes.c_ssize_t),
        ("Canceled", ctypes.c_ssize_t),
        ("GetLocale", ctypes.c_ssize_t),
        ("RegisterCancel", ctypes.c_ssize_t),
        ("RequestUnload", ctypes.c_ssize_t),
        ("RefuseUnload", ctypes.c_ssize_t),
        ("GetLocalSession", ctypes.c_ssize_t),
        ("SetStringOption", ctypes.c_ssize_t),
        ("GetStringOption", ctypes.c_ssize_t),
        ("GetNumberOption", ctypes.c_ssize_t),
        ("GetCustomOption", ctypes.c_ssize_t),
        ("GetCustomOptionCount", ctypes.c_ssize_t),
        ("GetCustomOptionAt", ctypes.c_ssize_t),
        ("WriteMessage", ctypes.c_ssize_t),
        ("WriteProgress", ctypes.c_ssize_t),
        ("WriteStreamParameter", ctypes.c_ssize_t),
        ("WriteCimError", ctypes.c_ssize_t),
        ("PromptUser", ctypes.c_ssize_t),
        ("ShouldProcess", ctypes.c_ssize_t),
        ("ShouldContinue", ctypes.c_ssize_t),
        ("PostError", ctypes.c_ssize_t),
        ("PostCimError", ctypes.c_ssize_t),
        ("WriteError", ctypes.c_ssize_t),
    ]
#[repr(C)]
pub struct MI_ContextFT {
    pub PostResult: isize,
    pub PostInstance: isize,
    pub PostIndication: isize,
    pub ConstructInstance: isize,
    pub ConstructParameters: isize,
    pub NewInstance: isize,
    pub NewDynamicInstance: isize,
    pub NewParameters: isize,
    pub Canceled: isize,
    pub GetLocale: isize,
    pub RegisterCancel: isize,
    pub RequestUnload: isize,
    pub RefuseUnload: isize,
    pub GetLocalSession: isize,
    pub SetStringOption: isize,
    pub GetStringOption: isize,
    pub GetNumberOption: isize,
    pub GetCustomOption: isize,
    pub GetCustomOptionCount: isize,
    pub GetCustomOptionAt: isize,
    pub WriteMessage: isize,
    pub WriteProgress: isize,
    pub WriteStreamParameter: isize,
    pub WriteCimError: isize,
    pub PromptUser: isize,
    pub ShouldProcess: isize,
    pub ShouldContinue: isize,
    pub PostError: isize,
    pub PostCimError: isize,
    pub WriteError: isize,
}
import "golang.org/x/sys/windows"

type MI_ContextFT struct {
	PostResult uintptr
	PostInstance uintptr
	PostIndication uintptr
	ConstructInstance uintptr
	ConstructParameters uintptr
	NewInstance uintptr
	NewDynamicInstance uintptr
	NewParameters uintptr
	Canceled uintptr
	GetLocale uintptr
	RegisterCancel uintptr
	RequestUnload uintptr
	RefuseUnload uintptr
	GetLocalSession uintptr
	SetStringOption uintptr
	GetStringOption uintptr
	GetNumberOption uintptr
	GetCustomOption uintptr
	GetCustomOptionCount uintptr
	GetCustomOptionAt uintptr
	WriteMessage uintptr
	WriteProgress uintptr
	WriteStreamParameter uintptr
	WriteCimError uintptr
	PromptUser uintptr
	ShouldProcess uintptr
	ShouldContinue uintptr
	PostError uintptr
	PostCimError uintptr
	WriteError uintptr
}
type
  MI_ContextFT = record
    PostResult: NativeInt;
    PostInstance: NativeInt;
    PostIndication: NativeInt;
    ConstructInstance: NativeInt;
    ConstructParameters: NativeInt;
    NewInstance: NativeInt;
    NewDynamicInstance: NativeInt;
    NewParameters: NativeInt;
    Canceled: NativeInt;
    GetLocale: NativeInt;
    RegisterCancel: NativeInt;
    RequestUnload: NativeInt;
    RefuseUnload: NativeInt;
    GetLocalSession: NativeInt;
    SetStringOption: NativeInt;
    GetStringOption: NativeInt;
    GetNumberOption: NativeInt;
    GetCustomOption: NativeInt;
    GetCustomOptionCount: NativeInt;
    GetCustomOptionAt: NativeInt;
    WriteMessage: NativeInt;
    WriteProgress: NativeInt;
    WriteStreamParameter: NativeInt;
    WriteCimError: NativeInt;
    PromptUser: NativeInt;
    ShouldProcess: NativeInt;
    ShouldContinue: NativeInt;
    PostError: NativeInt;
    PostCimError: NativeInt;
    WriteError: NativeInt;
  end;
const MI_ContextFT = extern struct {
    PostResult: isize,
    PostInstance: isize,
    PostIndication: isize,
    ConstructInstance: isize,
    ConstructParameters: isize,
    NewInstance: isize,
    NewDynamicInstance: isize,
    NewParameters: isize,
    Canceled: isize,
    GetLocale: isize,
    RegisterCancel: isize,
    RequestUnload: isize,
    RefuseUnload: isize,
    GetLocalSession: isize,
    SetStringOption: isize,
    GetStringOption: isize,
    GetNumberOption: isize,
    GetCustomOption: isize,
    GetCustomOptionCount: isize,
    GetCustomOptionAt: isize,
    WriteMessage: isize,
    WriteProgress: isize,
    WriteStreamParameter: isize,
    WriteCimError: isize,
    PromptUser: isize,
    ShouldProcess: isize,
    ShouldContinue: isize,
    PostError: isize,
    PostCimError: isize,
    WriteError: isize,
};
type
  MI_ContextFT {.bycopy.} = object
    PostResult: int
    PostInstance: int
    PostIndication: int
    ConstructInstance: int
    ConstructParameters: int
    NewInstance: int
    NewDynamicInstance: int
    NewParameters: int
    Canceled: int
    GetLocale: int
    RegisterCancel: int
    RequestUnload: int
    RefuseUnload: int
    GetLocalSession: int
    SetStringOption: int
    GetStringOption: int
    GetNumberOption: int
    GetCustomOption: int
    GetCustomOptionCount: int
    GetCustomOptionAt: int
    WriteMessage: int
    WriteProgress: int
    WriteStreamParameter: int
    WriteCimError: int
    PromptUser: int
    ShouldProcess: int
    ShouldContinue: int
    PostError: int
    PostCimError: int
    WriteError: int
struct MI_ContextFT
{
    ptrdiff_t PostResult;
    ptrdiff_t PostInstance;
    ptrdiff_t PostIndication;
    ptrdiff_t ConstructInstance;
    ptrdiff_t ConstructParameters;
    ptrdiff_t NewInstance;
    ptrdiff_t NewDynamicInstance;
    ptrdiff_t NewParameters;
    ptrdiff_t Canceled;
    ptrdiff_t GetLocale;
    ptrdiff_t RegisterCancel;
    ptrdiff_t RequestUnload;
    ptrdiff_t RefuseUnload;
    ptrdiff_t GetLocalSession;
    ptrdiff_t SetStringOption;
    ptrdiff_t GetStringOption;
    ptrdiff_t GetNumberOption;
    ptrdiff_t GetCustomOption;
    ptrdiff_t GetCustomOptionCount;
    ptrdiff_t GetCustomOptionAt;
    ptrdiff_t WriteMessage;
    ptrdiff_t WriteProgress;
    ptrdiff_t WriteStreamParameter;
    ptrdiff_t WriteCimError;
    ptrdiff_t PromptUser;
    ptrdiff_t ShouldProcess;
    ptrdiff_t ShouldContinue;
    ptrdiff_t PostError;
    ptrdiff_t PostCimError;
    ptrdiff_t WriteError;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; MI_ContextFT サイズ: 120 バイト(x86)
dim st, 30    ; 4byte整数×30(構造体サイズ 120 / 4 切り上げ)
; PostResult : INT_PTR (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; PostInstance : INT_PTR (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; PostIndication : INT_PTR (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; ConstructInstance : INT_PTR (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; ConstructParameters : INT_PTR (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; NewInstance : INT_PTR (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; NewDynamicInstance : INT_PTR (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; NewParameters : INT_PTR (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; Canceled : INT_PTR (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; GetLocale : INT_PTR (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; RegisterCancel : INT_PTR (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; RequestUnload : INT_PTR (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; RefuseUnload : INT_PTR (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; GetLocalSession : INT_PTR (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; SetStringOption : INT_PTR (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; GetStringOption : INT_PTR (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; GetNumberOption : INT_PTR (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; GetCustomOption : INT_PTR (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; GetCustomOptionCount : INT_PTR (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; GetCustomOptionAt : INT_PTR (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; WriteMessage : INT_PTR (+80, 4byte)  st.20 = 値  /  値 = st.20   (lpoke/lpeek も可)
; WriteProgress : INT_PTR (+84, 4byte)  st.21 = 値  /  値 = st.21   (lpoke/lpeek も可)
; WriteStreamParameter : INT_PTR (+88, 4byte)  st.22 = 値  /  値 = st.22   (lpoke/lpeek も可)
; WriteCimError : INT_PTR (+92, 4byte)  st.23 = 値  /  値 = st.23   (lpoke/lpeek も可)
; PromptUser : INT_PTR (+96, 4byte)  st.24 = 値  /  値 = st.24   (lpoke/lpeek も可)
; ShouldProcess : INT_PTR (+100, 4byte)  st.25 = 値  /  値 = st.25   (lpoke/lpeek も可)
; ShouldContinue : INT_PTR (+104, 4byte)  st.26 = 値  /  値 = st.26   (lpoke/lpeek も可)
; PostError : INT_PTR (+108, 4byte)  st.27 = 値  /  値 = st.27   (lpoke/lpeek も可)
; PostCimError : INT_PTR (+112, 4byte)  st.28 = 値  /  値 = st.28   (lpoke/lpeek も可)
; WriteError : INT_PTR (+116, 4byte)  st.29 = 値  /  値 = st.29   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MI_ContextFT サイズ: 240 バイト(x64)
dim st, 60    ; 4byte整数×60(構造体サイズ 240 / 4 切り上げ)
; PostResult : INT_PTR (+0, 8byte)  qpoke st,0,値 / qpeek(st,0)  ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; PostInstance : INT_PTR (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; PostIndication : INT_PTR (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; ConstructInstance : INT_PTR (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; ConstructParameters : INT_PTR (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; NewInstance : INT_PTR (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; NewDynamicInstance : INT_PTR (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; NewParameters : INT_PTR (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; Canceled : INT_PTR (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; GetLocale : INT_PTR (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; RegisterCancel : INT_PTR (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; RequestUnload : INT_PTR (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; RefuseUnload : INT_PTR (+96, 8byte)  qpoke st,96,値 / qpeek(st,96)  ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; GetLocalSession : INT_PTR (+104, 8byte)  qpoke st,104,値 / qpeek(st,104)  ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; SetStringOption : INT_PTR (+112, 8byte)  qpoke st,112,値 / qpeek(st,112)  ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; GetStringOption : INT_PTR (+120, 8byte)  qpoke st,120,値 / qpeek(st,120)  ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; GetNumberOption : INT_PTR (+128, 8byte)  qpoke st,128,値 / qpeek(st,128)  ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; GetCustomOption : INT_PTR (+136, 8byte)  qpoke st,136,値 / qpeek(st,136)  ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; GetCustomOptionCount : INT_PTR (+144, 8byte)  qpoke st,144,値 / qpeek(st,144)  ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; GetCustomOptionAt : INT_PTR (+152, 8byte)  qpoke st,152,値 / qpeek(st,152)  ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; WriteMessage : INT_PTR (+160, 8byte)  qpoke st,160,値 / qpeek(st,160)  ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; WriteProgress : INT_PTR (+168, 8byte)  qpoke st,168,値 / qpeek(st,168)  ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; WriteStreamParameter : INT_PTR (+176, 8byte)  qpoke st,176,値 / qpeek(st,176)  ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; WriteCimError : INT_PTR (+184, 8byte)  qpoke st,184,値 / qpeek(st,184)  ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; PromptUser : INT_PTR (+192, 8byte)  qpoke st,192,値 / qpeek(st,192)  ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; ShouldProcess : INT_PTR (+200, 8byte)  qpoke st,200,値 / qpeek(st,200)  ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; ShouldContinue : INT_PTR (+208, 8byte)  qpoke st,208,値 / qpeek(st,208)  ※IronHSPのみ。3.7/3.8は lpoke st,208,下位 : lpoke st,212,上位
; PostError : INT_PTR (+216, 8byte)  qpoke st,216,値 / qpeek(st,216)  ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; PostCimError : INT_PTR (+224, 8byte)  qpoke st,224,値 / qpeek(st,224)  ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; WriteError : INT_PTR (+232, 8byte)  qpoke st,232,値 / qpeek(st,232)  ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MI_ContextFT
    #field intptr PostResult
    #field intptr PostInstance
    #field intptr PostIndication
    #field intptr ConstructInstance
    #field intptr ConstructParameters
    #field intptr NewInstance
    #field intptr NewDynamicInstance
    #field intptr NewParameters
    #field intptr Canceled
    #field intptr GetLocale
    #field intptr RegisterCancel
    #field intptr RequestUnload
    #field intptr RefuseUnload
    #field intptr GetLocalSession
    #field intptr SetStringOption
    #field intptr GetStringOption
    #field intptr GetNumberOption
    #field intptr GetCustomOption
    #field intptr GetCustomOptionCount
    #field intptr GetCustomOptionAt
    #field intptr WriteMessage
    #field intptr WriteProgress
    #field intptr WriteStreamParameter
    #field intptr WriteCimError
    #field intptr PromptUser
    #field intptr ShouldProcess
    #field intptr ShouldContinue
    #field intptr PostError
    #field intptr PostCimError
    #field intptr WriteError
#endstruct

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