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

プロバイダーは、要求への応答としてサーバーに戻りコードをポストするために、この関数を呼び出します。 MI_Context_PostResult を参照してください。

- PostTerminatingError

要求への応答として、戻りコードとエラーメッセージをサーバーにポストします。

PostInstanceINT_PTR8/4+8+4プロバイダーは、要求への応答としてサーバーにインスタンスをポストするために、この関数を呼び出します。 MI_Context_PostInstance を参照してください。
PostIndicationINT_PTR8/4+16+8要求への応答として、インディケーションをサーバーにポストします。 MI_Context_PostIndication を参照してください。
ConstructInstanceINT_PTR8/4+24+12インスタンスを初期化します。 MI_Context_ConstructInstance を参照してください。
ConstructParametersINT_PTR8/4+32+16パラメーターインスタンスを初期化します。 MI_Context_ConstructParameters を参照してください。
NewInstanceINT_PTR8/4+40+20classDecl パラメーターで指定されたクラスの新しいインスタンスを作成します。 MI_Context_NewInstance を参照してください。
NewDynamicInstanceINT_PTR8/4+48+24className で名前が指定されたクラスの新しい動的インスタンスを作成します。 MI_Context_NewDynamicInstance を参照してください。
NewParametersINT_PTR8/4+56+28methodDecl で指定されたメソッドの新しいインスタンスを作成します。 MI_Context_NewParameters を参照してください。
CanceledINT_PTR8/4+64+32操作がキャンセルされたかどうかを判定します。 MI_Context_Canceled を参照してください。
GetLocaleINT_PTR8/4+72+36指定された種類のロケールを返します。 MI_Context_GetLocale を参照してください。
RegisterCancelINT_PTR8/4+80+40操作がキャンセルされたときに呼び出されるコールバックを登録します。 MI_Context_RegisterCancel を参照してください。
RequestUnloadINT_PTR8/4+88+44モジュールまたはプロバイダーのアンロードを要求します (どちらになるかは呼び出し元の場所によって決まります)。 MI_Context_RequestUnload を参照してください。
RefuseUnloadINT_PTR8/4+96+48プロバイダーをアンロードしないようにプロバイダーインフラストラクチャに指示します。 MI_Context_RefuseUnload を参照してください。
GetLocalSessionINT_PTR8/4+104+52プロバイダーが CIM サーバーと通信できるようにするローカルセッションを取得します。 MI_Context_GetLocalSession を参照してください。
SetStringOptionINT_PTR8/4+112+56コンテキスト固有のオプションを設定します。 MI_Context_SetStringOption を参照してください。
GetStringOptionINT_PTR8/4+120+60指定されたプロバイダーのカスタムオプションを取得します。 MI_Context_GetStringOption を参照してください。
GetNumberOptionINT_PTR8/4+128+64指定されたプロバイダーのカスタムオプションを取得します。 MI_Context_GetNumberOption を参照してください。
GetCustomOptionINT_PTR8/4+136+68指定されたプロバイダーのカスタムオプションを取得します。 MI_Context_GetCustomOption を参照してください。
GetCustomOptionCountINT_PTR8/4+144+72定義されているプロバイダーのカスタムオプションの数を取得します。 MI_Context_GetCustomOptionCount を参照してください。
GetCustomOptionAtINT_PTR8/4+152+76指定されたインデックスにあるプロバイダーのカスタムオプションを取得します。 MI_Context_GetCustomOptionAt を参照してください。
WriteMessageINT_PTR8/4+160+80操作に関するメッセージをクライアントに送信します。 MI_Context_WriteMessage を参照してください。
WriteProgressINT_PTR8/4+168+84進行状況メッセージをクライアントに送信します。 MI_Context_WriteProgress を参照してください。
WriteStreamParameterINT_PTR8/4+176+88ストリーミングされたパラメーターデータを要求元に送信します。 MI_Context_WriteStreamParameter を参照してください。
WriteCimErrorINT_PTR8/4+184+92CIM エラーインスタンスをクライアントに送信します。 MI_Context_WriteCimError を参照してください。
PromptUserINT_PTR8/4+192+96操作を続行するかキャンセルするかを問い合わせるプロンプトメッセージをクライアントに送信します。 MI_Context_PromptUser を参照してください。
ShouldProcessINT_PTR8/4+200+100操作を続行すべきかどうかを判断するために、クライアントに問い合わせます。 MI_Context_ShouldProcess を参照してください。
ShouldContinueINT_PTR8/4+208+104操作を続行すべきかどうかを判断するために、クライアントに問い合わせます。 MI_Context_ShouldContinue を参照してください。
PostErrorINT_PTR8/4+216+108プロバイダーは、要求への応答としてクライアントに戻りコードをポストするために、この関数を呼び出します。 MI_Context_PostError を参照してください。
PostCimErrorINT_PTR8/4+224+112要求への応答として、戻りコードとエラーメッセージをサーバーにポストします。 MI_Context_PostCimError を参照してください。
WriteErrorINT_PTR8/4+232+116

この関数は非推奨です。代わりに MI_Context_WriteError を使用してください。

エラーコードとエラーメッセージをクライアントに送信します。 MI_Context_WriteError を参照してください。

公式ドキュメント

MI_Context 構造体で使用されるサポート構造体です。これらの構造体を操作するには、名前の先頭に "MI_Context_" が付く関数を使用します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#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