ホーム › System.Wmi › MI_ContextFT
MI_ContextFT
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| PostResult | INT_PTR | 8/4 | +0 | +0 | 操作の最終結果(成功/エラー)を返す関数ポインタ。 |
| PostInstance | INT_PTR | 8/4 | +8 | +4 | 結果インスタンスを呼び出し元に送る関数ポインタ。 |
| PostIndication | INT_PTR | 8/4 | +16 | +8 | インディケーション(イベント)を送る関数ポインタ。 |
| ConstructInstance | INT_PTR | 8/4 | +24 | +12 | クラスから空のインスタンスを構築する関数ポインタ。 |
| ConstructParameters | INT_PTR | 8/4 | +32 | +16 | メソッドのパラメータ構造体を構築する関数ポインタ。 |
| NewInstance | INT_PTR | 8/4 | +40 | +20 | 新しいインスタンスを生成する関数ポインタ。 |
| NewDynamicInstance | INT_PTR | 8/4 | +48 | +24 | 動的クラスの新規インスタンスを生成する関数ポインタ。 |
| NewParameters | INT_PTR | 8/4 | +56 | +28 | 新しいパラメータインスタンスを生成する関数ポインタ。 |
| Canceled | INT_PTR | 8/4 | +64 | +32 | 操作がキャンセルされたか確認する関数ポインタ。 |
| GetLocale | INT_PTR | 8/4 | +72 | +36 | 要求のロケール情報を取得する関数ポインタ。 |
| RegisterCancel | INT_PTR | 8/4 | +80 | +40 | キャンセル通知コールバックを登録する関数ポインタ。 |
| RequestUnload | INT_PTR | 8/4 | +88 | +44 | プロバイダーのアンロードを要求する関数ポインタ。 |
| RefuseUnload | INT_PTR | 8/4 | +96 | +48 | アンロードを拒否する関数ポインタ。 |
| GetLocalSession | INT_PTR | 8/4 | +104 | +52 | ローカルセッションを取得する関数ポインタ。 |
| SetStringOption | INT_PTR | 8/4 | +112 | +56 | 文字列オプションを設定する関数ポインタ。 |
| GetStringOption | INT_PTR | 8/4 | +120 | +60 | 文字列オプションを取得する関数ポインタ。 |
| GetNumberOption | INT_PTR | 8/4 | +128 | +64 | 数値オプションを取得する関数ポインタ。 |
| GetCustomOption | INT_PTR | 8/4 | +136 | +68 | カスタムオプションを取得する関数ポインタ。 |
| GetCustomOptionCount | INT_PTR | 8/4 | +144 | +72 | カスタムオプションの数を取得する関数ポインタ。 |
| GetCustomOptionAt | INT_PTR | 8/4 | +152 | +76 | インデックス指定でカスタムオプションを取得する関数ポインタ。 |
| WriteMessage | INT_PTR | 8/4 | +160 | +80 | クライアントへメッセージを書き込む関数ポインタ。 |
| WriteProgress | INT_PTR | 8/4 | +168 | +84 | 進捗情報をクライアントへ書き込む関数ポインタ。 |
| WriteStreamParameter | INT_PTR | 8/4 | +176 | +88 | ストリーム出力パラメータを書き込む関数ポインタ。 |
| WriteCimError | INT_PTR | 8/4 | +184 | +92 | CIMエラーインスタンスを書き込む関数ポインタ。 |
| PromptUser | INT_PTR | 8/4 | +192 | +96 | ユーザーへ確認プロンプトを表示する関数ポインタ。 |
| ShouldProcess | INT_PTR | 8/4 | +200 | +100 | 処理を実行すべきか確認する関数ポインタ。 |
| ShouldContinue | INT_PTR | 8/4 | +208 | +104 | 処理を継続すべきか確認する関数ポインタ。 |
| PostError | INT_PTR | 8/4 | +216 | +108 | Win32エラーコードでエラーを返す関数ポインタ。 |
| PostCimError | INT_PTR | 8/4 | +224 | +112 | CIMエラーインスタンスでエラーを返す関数ポインタ。 |
| WriteError | INT_PTR | 8/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 Structureimport 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: intstruct 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