Win32 API 日本語リファレンス
ホームSecurity.WinWlx › WLX_DISPATCH_VERSION_1_3

WLX_DISPATCH_VERSION_1_3

構造体
サイズx64: 200 バイト / x86: 100 バイト

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

フィールド

フィールドサイズx64x86説明
WlxUseCtrlAltDelPWLX_USE_CTRL_ALT_DEL8/4+0+0Ctrl+Alt+DelをSASとして使用させる関数へのポインタ。
WlxSetContextPointerPWLX_SET_CONTEXT_POINTER8/4+8+4コンテキストポインタを設定する関数へのポインタ。
WlxSasNotifyPWLX_SAS_NOTIFY8/4+16+8SAS発生をWinlogonへ通知する関数へのポインタ。
WlxSetTimeoutPWLX_SET_TIMEOUT8/4+24+12ダイアログのタイムアウトを設定する関数へのポインタ。
WlxAssignShellProtectionPWLX_ASSIGN_SHELL_PROTECTION8/4+32+16シェルプロセスへ保護を割り当てる関数へのポインタ。
WlxMessageBoxPWLX_MESSAGE_BOX8/4+40+20メッセージボックスを表示する関数へのポインタ。
WlxDialogBoxPWLX_DIALOG_BOX8/4+48+24ダイアログボックスを表示する関数へのポインタ。
WlxDialogBoxParamPWLX_DIALOG_BOX_PARAM8/4+56+28パラメータ付きダイアログを表示する関数へのポインタ。
WlxDialogBoxIndirectPWLX_DIALOG_BOX_INDIRECT8/4+64+32テンプレート指定ダイアログを表示する関数へのポインタ。
WlxDialogBoxIndirectParamPWLX_DIALOG_BOX_INDIRECT_PARAM8/4+72+36テンプレート+引数指定ダイアログ表示関数へのポインタ。
WlxSwitchDesktopToUserPWLX_SWITCH_DESKTOP_TO_USER8/4+80+40ユーザーデスクトップへ切り替える関数へのポインタ。
WlxSwitchDesktopToWinlogonPWLX_SWITCH_DESKTOP_TO_WINLOGON8/4+88+44Winlogonデスクトップへ切り替える関数へのポインタ。
WlxChangePasswordNotifyPWLX_CHANGE_PASSWORD_NOTIFY8/4+96+48パスワード変更を通知する関数へのポインタ。
WlxGetSourceDesktopPWLX_GET_SOURCE_DESKTOP8/4+104+52切り替え元デスクトップを取得する関数へのポインタ。
WlxSetReturnDesktopPWLX_SET_RETURN_DESKTOP8/4+112+56戻り先デスクトップを設定する関数へのポインタ。
WlxCreateUserDesktopPWLX_CREATE_USER_DESKTOP8/4+120+60ユーザーデスクトップを作成する関数へのポインタ。
WlxChangePasswordNotifyExPWLX_CHANGE_PASSWORD_NOTIFY_EX8/4+128+64拡張版のパスワード変更通知関数へのポインタ。
WlxCloseUserDesktopPWLX_CLOSE_USER_DESKTOP8/4+136+68ユーザーデスクトップを閉じる関数へのポインタ。
WlxSetOptionPWLX_SET_OPTION8/4+144+72オプション値を設定する関数へのポインタ。
WlxGetOptionPWLX_GET_OPTION8/4+152+76オプション値を取得する関数へのポインタ。
WlxWin31MigratePWLX_WIN31_MIGRATE8/4+160+80Windows 3.1からの移行を行う関数へのポインタ。
WlxQueryClientCredentialsPWLX_QUERY_CLIENT_CREDENTIALS8/4+168+84クライアント資格情報を問い合わせる関数へのポインタ。
WlxQueryInetConnectorCredentialsPWLX_QUERY_IC_CREDENTIALS8/4+176+88インターネットコネクタ資格情報を問い合わせる関数へのポインタ。
WlxDisconnectPWLX_DISCONNECT8/4+184+92セッションを切断する関数へのポインタ。
WlxQueryTerminalServicesDataPWLX_QUERY_TERMINAL_SERVICES_DATA8/4+192+96ターミナルサービスデータを問い合わせる関数へのポインタ。

各言語での定義

#include <windows.h>

// WLX_DISPATCH_VERSION_1_3  (x64 200 / x86 100 バイト)
typedef struct WLX_DISPATCH_VERSION_1_3 {
    PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
    PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
    PWLX_SAS_NOTIFY WlxSasNotify;
    PWLX_SET_TIMEOUT WlxSetTimeout;
    PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
    PWLX_MESSAGE_BOX WlxMessageBox;
    PWLX_DIALOG_BOX WlxDialogBox;
    PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
    PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
    PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
    PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
    PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
    PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
    PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
    PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
    PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
    PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
    PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
    PWLX_SET_OPTION WlxSetOption;
    PWLX_GET_OPTION WlxGetOption;
    PWLX_WIN31_MIGRATE WlxWin31Migrate;
    PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
    PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
    PWLX_DISCONNECT WlxDisconnect;
    PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
} WLX_DISPATCH_VERSION_1_3;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WLX_DISPATCH_VERSION_1_3
{
    public IntPtr WlxUseCtrlAltDel;
    public IntPtr WlxSetContextPointer;
    public IntPtr WlxSasNotify;
    public IntPtr WlxSetTimeout;
    public IntPtr WlxAssignShellProtection;
    public IntPtr WlxMessageBox;
    public IntPtr WlxDialogBox;
    public IntPtr WlxDialogBoxParam;
    public IntPtr WlxDialogBoxIndirect;
    public IntPtr WlxDialogBoxIndirectParam;
    public IntPtr WlxSwitchDesktopToUser;
    public IntPtr WlxSwitchDesktopToWinlogon;
    public IntPtr WlxChangePasswordNotify;
    public IntPtr WlxGetSourceDesktop;
    public IntPtr WlxSetReturnDesktop;
    public IntPtr WlxCreateUserDesktop;
    public IntPtr WlxChangePasswordNotifyEx;
    public IntPtr WlxCloseUserDesktop;
    public IntPtr WlxSetOption;
    public IntPtr WlxGetOption;
    public IntPtr WlxWin31Migrate;
    public IntPtr WlxQueryClientCredentials;
    public IntPtr WlxQueryInetConnectorCredentials;
    public IntPtr WlxDisconnect;
    public IntPtr WlxQueryTerminalServicesData;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WLX_DISPATCH_VERSION_1_3
    Public WlxUseCtrlAltDel As IntPtr
    Public WlxSetContextPointer As IntPtr
    Public WlxSasNotify As IntPtr
    Public WlxSetTimeout As IntPtr
    Public WlxAssignShellProtection As IntPtr
    Public WlxMessageBox As IntPtr
    Public WlxDialogBox As IntPtr
    Public WlxDialogBoxParam As IntPtr
    Public WlxDialogBoxIndirect As IntPtr
    Public WlxDialogBoxIndirectParam As IntPtr
    Public WlxSwitchDesktopToUser As IntPtr
    Public WlxSwitchDesktopToWinlogon As IntPtr
    Public WlxChangePasswordNotify As IntPtr
    Public WlxGetSourceDesktop As IntPtr
    Public WlxSetReturnDesktop As IntPtr
    Public WlxCreateUserDesktop As IntPtr
    Public WlxChangePasswordNotifyEx As IntPtr
    Public WlxCloseUserDesktop As IntPtr
    Public WlxSetOption As IntPtr
    Public WlxGetOption As IntPtr
    Public WlxWin31Migrate As IntPtr
    Public WlxQueryClientCredentials As IntPtr
    Public WlxQueryInetConnectorCredentials As IntPtr
    Public WlxDisconnect As IntPtr
    Public WlxQueryTerminalServicesData As IntPtr
End Structure
import ctypes
from ctypes import wintypes

class WLX_DISPATCH_VERSION_1_3(ctypes.Structure):
    _fields_ = [
        ("WlxUseCtrlAltDel", ctypes.c_void_p),
        ("WlxSetContextPointer", ctypes.c_void_p),
        ("WlxSasNotify", ctypes.c_void_p),
        ("WlxSetTimeout", ctypes.c_void_p),
        ("WlxAssignShellProtection", ctypes.c_void_p),
        ("WlxMessageBox", ctypes.c_void_p),
        ("WlxDialogBox", ctypes.c_void_p),
        ("WlxDialogBoxParam", ctypes.c_void_p),
        ("WlxDialogBoxIndirect", ctypes.c_void_p),
        ("WlxDialogBoxIndirectParam", ctypes.c_void_p),
        ("WlxSwitchDesktopToUser", ctypes.c_void_p),
        ("WlxSwitchDesktopToWinlogon", ctypes.c_void_p),
        ("WlxChangePasswordNotify", ctypes.c_void_p),
        ("WlxGetSourceDesktop", ctypes.c_void_p),
        ("WlxSetReturnDesktop", ctypes.c_void_p),
        ("WlxCreateUserDesktop", ctypes.c_void_p),
        ("WlxChangePasswordNotifyEx", ctypes.c_void_p),
        ("WlxCloseUserDesktop", ctypes.c_void_p),
        ("WlxSetOption", ctypes.c_void_p),
        ("WlxGetOption", ctypes.c_void_p),
        ("WlxWin31Migrate", ctypes.c_void_p),
        ("WlxQueryClientCredentials", ctypes.c_void_p),
        ("WlxQueryInetConnectorCredentials", ctypes.c_void_p),
        ("WlxDisconnect", ctypes.c_void_p),
        ("WlxQueryTerminalServicesData", ctypes.c_void_p),
    ]
#[repr(C)]
pub struct WLX_DISPATCH_VERSION_1_3 {
    pub WlxUseCtrlAltDel: *mut core::ffi::c_void,
    pub WlxSetContextPointer: *mut core::ffi::c_void,
    pub WlxSasNotify: *mut core::ffi::c_void,
    pub WlxSetTimeout: *mut core::ffi::c_void,
    pub WlxAssignShellProtection: *mut core::ffi::c_void,
    pub WlxMessageBox: *mut core::ffi::c_void,
    pub WlxDialogBox: *mut core::ffi::c_void,
    pub WlxDialogBoxParam: *mut core::ffi::c_void,
    pub WlxDialogBoxIndirect: *mut core::ffi::c_void,
    pub WlxDialogBoxIndirectParam: *mut core::ffi::c_void,
    pub WlxSwitchDesktopToUser: *mut core::ffi::c_void,
    pub WlxSwitchDesktopToWinlogon: *mut core::ffi::c_void,
    pub WlxChangePasswordNotify: *mut core::ffi::c_void,
    pub WlxGetSourceDesktop: *mut core::ffi::c_void,
    pub WlxSetReturnDesktop: *mut core::ffi::c_void,
    pub WlxCreateUserDesktop: *mut core::ffi::c_void,
    pub WlxChangePasswordNotifyEx: *mut core::ffi::c_void,
    pub WlxCloseUserDesktop: *mut core::ffi::c_void,
    pub WlxSetOption: *mut core::ffi::c_void,
    pub WlxGetOption: *mut core::ffi::c_void,
    pub WlxWin31Migrate: *mut core::ffi::c_void,
    pub WlxQueryClientCredentials: *mut core::ffi::c_void,
    pub WlxQueryInetConnectorCredentials: *mut core::ffi::c_void,
    pub WlxDisconnect: *mut core::ffi::c_void,
    pub WlxQueryTerminalServicesData: *mut core::ffi::c_void,
}
import "golang.org/x/sys/windows"

type WLX_DISPATCH_VERSION_1_3 struct {
	WlxUseCtrlAltDel uintptr
	WlxSetContextPointer uintptr
	WlxSasNotify uintptr
	WlxSetTimeout uintptr
	WlxAssignShellProtection uintptr
	WlxMessageBox uintptr
	WlxDialogBox uintptr
	WlxDialogBoxParam uintptr
	WlxDialogBoxIndirect uintptr
	WlxDialogBoxIndirectParam uintptr
	WlxSwitchDesktopToUser uintptr
	WlxSwitchDesktopToWinlogon uintptr
	WlxChangePasswordNotify uintptr
	WlxGetSourceDesktop uintptr
	WlxSetReturnDesktop uintptr
	WlxCreateUserDesktop uintptr
	WlxChangePasswordNotifyEx uintptr
	WlxCloseUserDesktop uintptr
	WlxSetOption uintptr
	WlxGetOption uintptr
	WlxWin31Migrate uintptr
	WlxQueryClientCredentials uintptr
	WlxQueryInetConnectorCredentials uintptr
	WlxDisconnect uintptr
	WlxQueryTerminalServicesData uintptr
}
type
  WLX_DISPATCH_VERSION_1_3 = record
    WlxUseCtrlAltDel: Pointer;
    WlxSetContextPointer: Pointer;
    WlxSasNotify: Pointer;
    WlxSetTimeout: Pointer;
    WlxAssignShellProtection: Pointer;
    WlxMessageBox: Pointer;
    WlxDialogBox: Pointer;
    WlxDialogBoxParam: Pointer;
    WlxDialogBoxIndirect: Pointer;
    WlxDialogBoxIndirectParam: Pointer;
    WlxSwitchDesktopToUser: Pointer;
    WlxSwitchDesktopToWinlogon: Pointer;
    WlxChangePasswordNotify: Pointer;
    WlxGetSourceDesktop: Pointer;
    WlxSetReturnDesktop: Pointer;
    WlxCreateUserDesktop: Pointer;
    WlxChangePasswordNotifyEx: Pointer;
    WlxCloseUserDesktop: Pointer;
    WlxSetOption: Pointer;
    WlxGetOption: Pointer;
    WlxWin31Migrate: Pointer;
    WlxQueryClientCredentials: Pointer;
    WlxQueryInetConnectorCredentials: Pointer;
    WlxDisconnect: Pointer;
    WlxQueryTerminalServicesData: Pointer;
  end;
const WLX_DISPATCH_VERSION_1_3 = extern struct {
    WlxUseCtrlAltDel: ?*anyopaque,
    WlxSetContextPointer: ?*anyopaque,
    WlxSasNotify: ?*anyopaque,
    WlxSetTimeout: ?*anyopaque,
    WlxAssignShellProtection: ?*anyopaque,
    WlxMessageBox: ?*anyopaque,
    WlxDialogBox: ?*anyopaque,
    WlxDialogBoxParam: ?*anyopaque,
    WlxDialogBoxIndirect: ?*anyopaque,
    WlxDialogBoxIndirectParam: ?*anyopaque,
    WlxSwitchDesktopToUser: ?*anyopaque,
    WlxSwitchDesktopToWinlogon: ?*anyopaque,
    WlxChangePasswordNotify: ?*anyopaque,
    WlxGetSourceDesktop: ?*anyopaque,
    WlxSetReturnDesktop: ?*anyopaque,
    WlxCreateUserDesktop: ?*anyopaque,
    WlxChangePasswordNotifyEx: ?*anyopaque,
    WlxCloseUserDesktop: ?*anyopaque,
    WlxSetOption: ?*anyopaque,
    WlxGetOption: ?*anyopaque,
    WlxWin31Migrate: ?*anyopaque,
    WlxQueryClientCredentials: ?*anyopaque,
    WlxQueryInetConnectorCredentials: ?*anyopaque,
    WlxDisconnect: ?*anyopaque,
    WlxQueryTerminalServicesData: ?*anyopaque,
};
type
  WLX_DISPATCH_VERSION_1_3 {.bycopy.} = object
    WlxUseCtrlAltDel: pointer
    WlxSetContextPointer: pointer
    WlxSasNotify: pointer
    WlxSetTimeout: pointer
    WlxAssignShellProtection: pointer
    WlxMessageBox: pointer
    WlxDialogBox: pointer
    WlxDialogBoxParam: pointer
    WlxDialogBoxIndirect: pointer
    WlxDialogBoxIndirectParam: pointer
    WlxSwitchDesktopToUser: pointer
    WlxSwitchDesktopToWinlogon: pointer
    WlxChangePasswordNotify: pointer
    WlxGetSourceDesktop: pointer
    WlxSetReturnDesktop: pointer
    WlxCreateUserDesktop: pointer
    WlxChangePasswordNotifyEx: pointer
    WlxCloseUserDesktop: pointer
    WlxSetOption: pointer
    WlxGetOption: pointer
    WlxWin31Migrate: pointer
    WlxQueryClientCredentials: pointer
    WlxQueryInetConnectorCredentials: pointer
    WlxDisconnect: pointer
    WlxQueryTerminalServicesData: pointer
struct WLX_DISPATCH_VERSION_1_3
{
    void* WlxUseCtrlAltDel;
    void* WlxSetContextPointer;
    void* WlxSasNotify;
    void* WlxSetTimeout;
    void* WlxAssignShellProtection;
    void* WlxMessageBox;
    void* WlxDialogBox;
    void* WlxDialogBoxParam;
    void* WlxDialogBoxIndirect;
    void* WlxDialogBoxIndirectParam;
    void* WlxSwitchDesktopToUser;
    void* WlxSwitchDesktopToWinlogon;
    void* WlxChangePasswordNotify;
    void* WlxGetSourceDesktop;
    void* WlxSetReturnDesktop;
    void* WlxCreateUserDesktop;
    void* WlxChangePasswordNotifyEx;
    void* WlxCloseUserDesktop;
    void* WlxSetOption;
    void* WlxGetOption;
    void* WlxWin31Migrate;
    void* WlxQueryClientCredentials;
    void* WlxQueryInetConnectorCredentials;
    void* WlxDisconnect;
    void* WlxQueryTerminalServicesData;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; WLX_DISPATCH_VERSION_1_3 サイズ: 100 バイト(x86)
dim st, 25    ; 4byte整数×25(構造体サイズ 100 / 4 切り上げ)
; WlxUseCtrlAltDel : PWLX_USE_CTRL_ALT_DEL (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; WlxSetContextPointer : PWLX_SET_CONTEXT_POINTER (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; WlxSasNotify : PWLX_SAS_NOTIFY (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; WlxSetTimeout : PWLX_SET_TIMEOUT (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; WlxAssignShellProtection : PWLX_ASSIGN_SHELL_PROTECTION (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; WlxMessageBox : PWLX_MESSAGE_BOX (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; WlxDialogBox : PWLX_DIALOG_BOX (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; WlxDialogBoxParam : PWLX_DIALOG_BOX_PARAM (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; WlxDialogBoxIndirect : PWLX_DIALOG_BOX_INDIRECT (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; WlxDialogBoxIndirectParam : PWLX_DIALOG_BOX_INDIRECT_PARAM (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; WlxSwitchDesktopToUser : PWLX_SWITCH_DESKTOP_TO_USER (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; WlxSwitchDesktopToWinlogon : PWLX_SWITCH_DESKTOP_TO_WINLOGON (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; WlxChangePasswordNotify : PWLX_CHANGE_PASSWORD_NOTIFY (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; WlxGetSourceDesktop : PWLX_GET_SOURCE_DESKTOP (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; WlxSetReturnDesktop : PWLX_SET_RETURN_DESKTOP (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; WlxCreateUserDesktop : PWLX_CREATE_USER_DESKTOP (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; WlxChangePasswordNotifyEx : PWLX_CHANGE_PASSWORD_NOTIFY_EX (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; WlxCloseUserDesktop : PWLX_CLOSE_USER_DESKTOP (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; WlxSetOption : PWLX_SET_OPTION (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; WlxGetOption : PWLX_GET_OPTION (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; WlxWin31Migrate : PWLX_WIN31_MIGRATE (+80, 4byte)  st.20 = 値  /  値 = st.20   (lpoke/lpeek も可)
; WlxQueryClientCredentials : PWLX_QUERY_CLIENT_CREDENTIALS (+84, 4byte)  st.21 = 値  /  値 = st.21   (lpoke/lpeek も可)
; WlxQueryInetConnectorCredentials : PWLX_QUERY_IC_CREDENTIALS (+88, 4byte)  st.22 = 値  /  値 = st.22   (lpoke/lpeek も可)
; WlxDisconnect : PWLX_DISCONNECT (+92, 4byte)  st.23 = 値  /  値 = st.23   (lpoke/lpeek も可)
; WlxQueryTerminalServicesData : PWLX_QUERY_TERMINAL_SERVICES_DATA (+96, 4byte)  st.24 = 値  /  値 = st.24   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WLX_DISPATCH_VERSION_1_3 サイズ: 200 バイト(x64)
dim st, 50    ; 4byte整数×50(構造体サイズ 200 / 4 切り上げ)
; WlxUseCtrlAltDel : PWLX_USE_CTRL_ALT_DEL (+0, 8byte)  qpoke st,0,値 / qpeek(st,0)  ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; WlxSetContextPointer : PWLX_SET_CONTEXT_POINTER (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; WlxSasNotify : PWLX_SAS_NOTIFY (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; WlxSetTimeout : PWLX_SET_TIMEOUT (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; WlxAssignShellProtection : PWLX_ASSIGN_SHELL_PROTECTION (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; WlxMessageBox : PWLX_MESSAGE_BOX (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; WlxDialogBox : PWLX_DIALOG_BOX (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; WlxDialogBoxParam : PWLX_DIALOG_BOX_PARAM (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; WlxDialogBoxIndirect : PWLX_DIALOG_BOX_INDIRECT (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; WlxDialogBoxIndirectParam : PWLX_DIALOG_BOX_INDIRECT_PARAM (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; WlxSwitchDesktopToUser : PWLX_SWITCH_DESKTOP_TO_USER (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; WlxSwitchDesktopToWinlogon : PWLX_SWITCH_DESKTOP_TO_WINLOGON (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; WlxChangePasswordNotify : PWLX_CHANGE_PASSWORD_NOTIFY (+96, 8byte)  qpoke st,96,値 / qpeek(st,96)  ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; WlxGetSourceDesktop : PWLX_GET_SOURCE_DESKTOP (+104, 8byte)  qpoke st,104,値 / qpeek(st,104)  ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; WlxSetReturnDesktop : PWLX_SET_RETURN_DESKTOP (+112, 8byte)  qpoke st,112,値 / qpeek(st,112)  ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; WlxCreateUserDesktop : PWLX_CREATE_USER_DESKTOP (+120, 8byte)  qpoke st,120,値 / qpeek(st,120)  ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; WlxChangePasswordNotifyEx : PWLX_CHANGE_PASSWORD_NOTIFY_EX (+128, 8byte)  qpoke st,128,値 / qpeek(st,128)  ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; WlxCloseUserDesktop : PWLX_CLOSE_USER_DESKTOP (+136, 8byte)  qpoke st,136,値 / qpeek(st,136)  ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; WlxSetOption : PWLX_SET_OPTION (+144, 8byte)  qpoke st,144,値 / qpeek(st,144)  ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; WlxGetOption : PWLX_GET_OPTION (+152, 8byte)  qpoke st,152,値 / qpeek(st,152)  ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; WlxWin31Migrate : PWLX_WIN31_MIGRATE (+160, 8byte)  qpoke st,160,値 / qpeek(st,160)  ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; WlxQueryClientCredentials : PWLX_QUERY_CLIENT_CREDENTIALS (+168, 8byte)  qpoke st,168,値 / qpeek(st,168)  ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; WlxQueryInetConnectorCredentials : PWLX_QUERY_IC_CREDENTIALS (+176, 8byte)  qpoke st,176,値 / qpeek(st,176)  ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; WlxDisconnect : PWLX_DISCONNECT (+184, 8byte)  qpoke st,184,値 / qpeek(st,184)  ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; WlxQueryTerminalServicesData : PWLX_QUERY_TERMINAL_SERVICES_DATA (+192, 8byte)  qpoke st,192,値 / qpeek(st,192)  ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global WLX_DISPATCH_VERSION_1_3
    #field intptr WlxUseCtrlAltDel
    #field intptr WlxSetContextPointer
    #field intptr WlxSasNotify
    #field intptr WlxSetTimeout
    #field intptr WlxAssignShellProtection
    #field intptr WlxMessageBox
    #field intptr WlxDialogBox
    #field intptr WlxDialogBoxParam
    #field intptr WlxDialogBoxIndirect
    #field intptr WlxDialogBoxIndirectParam
    #field intptr WlxSwitchDesktopToUser
    #field intptr WlxSwitchDesktopToWinlogon
    #field intptr WlxChangePasswordNotify
    #field intptr WlxGetSourceDesktop
    #field intptr WlxSetReturnDesktop
    #field intptr WlxCreateUserDesktop
    #field intptr WlxChangePasswordNotifyEx
    #field intptr WlxCloseUserDesktop
    #field intptr WlxSetOption
    #field intptr WlxGetOption
    #field intptr WlxWin31Migrate
    #field intptr WlxQueryClientCredentials
    #field intptr WlxQueryInetConnectorCredentials
    #field intptr WlxDisconnect
    #field intptr WlxQueryTerminalServicesData
#endstruct

stdim st, WLX_DISPATCH_VERSION_1_3        ; NSTRUCT 変数を確保