本節ではWSAPIの各インタフェースで使用される構造体、定数名定義についてC言語の形式で記述します。
C言語プログラムからの呼び出しの場合は、インクルード・ヘッダ・ファイルのxwsilb32.h、xwsiai32.hに以下に記述する定義体が定義されています。
(1) 文字列定義
#define XWSIDSPEMUFLEN 255 /*最大セットアップファイル名長*/ #define XWSIMAXPASSWD 64 /*最大キーファイルパスワード長*/ #define XWSIMAXPATHLEN 32 /*最大接続パス名長 */
(2) インタフェースオープン状態
typedef struct{ UCHAR KC_status; /* KCインタフェース */ UCHAR DC_status; /* DUET会話 */ UCHAR DF_status; /* DUETファイル */ }XWsiWsIfStat;
(3) インジケータ指定
typedef struct{ ULONG coninf_1; /* 結合状態1の条件指定 */ ULONG coninf_2; /* 結合状態2の条件指定 */ ULONG coninf_3; /* 結合状態3の条件指定 */ }XWsiWsInf;
(4) 転送データ
typedef struct { USHORT datalen; /* 転送データ長 */ PUCHAR data; /* 転送データアドレス */ } XWsiWsaData;
(5) 転送情報
typedef struct { USHORT mode; USHORT wait_time; USHORT key_unlock_time; } XWsiTrnsInf;
(6) 状態表示情報
typedef struct { UCHAR ready; /* READY */ UCHAR rule; /* 通信ルール */ UCHAR conect; /* 接続状態 */ UCHAR inp_proh; /* 入力禁止 */ UCHAR resv1; /* リザーブ */ UCHAR comsts; /* 通信エラー */ UCHAR resv2; /* リザーブ */ } XWsiLine25Inf;
(7) フィールド アトリビュート情報
typedef struct { USHORT fld_adr; /* フィールド 定義 アドレス */ UCHAR atr0; /* ATR0 */ UCHAR atr1; /* ATR1 */ UCHAR reserve[6]; /* リザーブ */ } XWsiFieldInfo;
(8) データテキスト
typedef struct { USHORT curs_adr; /* カーソルアドレス */ USHORT buf_length; /* バッファ- 長 (1920固定) */ UCHAR *data; /* 画面データ */ USHORT f_num; /* Field Atribute情報 個数 */ FieldInfo *f_inf; /* Field Atribute 情報 */ USHORT j_num; /* リザーブ */ JEFInfo *j_inf; /* リザーブ */ } XWsiRecvText; typedef struct { USHORT JEF_char_add; UCHAR code_info[2 ]; } XWsiJEFInfo;
(9) キーボード・CRTインタフェース
(1)処理タイミング #define XWSIMOD_NOWAIT 0 /* 無条件に処理を行う */ #define XWSIMOD_WAIT 1 /* 指定時間待った後処理を行う */ #define XWSIMOD_SENSE 2 /* キー入力可能であるとき処理を行う */ (2)1バイト系コード変換種別 #define XWSICNV_STUP 0 /* セットアップファイル設定コード */ #define XWSICNV_EBCALPH 1 /* EBCDIC 英小文字 */ #define XWSICNV_EBCKANA 2 /* EBCDIC カナ有り */ #define XWSICNV_EBCASCI 3 /* EBCDIC ASCII */ (3)漢字変換・ユーザー定義文字区画指定範囲 #define XWSIDWC_CNV_UJIS 0x01 /* 非漢字,第1・2水準,ユーザが作成したJEF 変換テーブルを利用した漢字変換 */ (4)キーアンロックタイム #define XWSIULTIM_LOGON 10 /* キーアンロックタイム : LOGON 送信時 */ #define XWSIULTIM_OTHER 5 /* : 以外 */
(10) ASCII コード(XWSIASC_EXK はWSMGR の特殊コード)
#define XWSIASC_ESC 0x1b /* エスケープ コード */ #define XWSIASC_EXK 0x0e /* JEF エスケープ コード */
(11) SENDコマンド テキストエスケープデータ
#define XWSIESC_RGHT 0x01 /* → */ #define XWSIESC_LEFT 0x02 /* ← */ #define XWSIESC_UP 0x03 /* ↑ */ #define XWSIESC_DOWN 0x04 /* ↓ */ #define XWSIESC_TAB 0x11 /* TAB */ #define XWSIESC_BTAB 0x12 /* BACK TAB */ #define XWSIESC_NLIN 0x13 /* NEW LINE */ #define XWSIESC_HOME 0x14 /* HOME */ #define XWSIESC_INSM 0x21 /* INSERT MODE */ #define XWSIESC_DEL 0x22 /* DELETE */ #define XWSIESC_ERSI 0x31 /* ERASE INPUT */ #define XWSIESC_ERSE 0x32 /* ERASE EOF */ #define XWSIESC_REST 0x51 /* RESET */ #define XWSIESC_CRSS 0x54 /* CURSOR SELECT */ #define XWSIESC_DUP 0x55 /* DUP */ #define XWSIESC_FMRK 0x56 /* FIELD MARK */ #define XWSIESC_PLIN 0x57 /* プラス入力 */ #define XWSIKC_CUCSLPOS 0xffff /*カレントカーソル位置よりデータ入力開始 */
(12) AIDコード
#define XWSIAID_PF1 0xf1 /* PF1 */ #define XWSIAID_PF2 0xf2 /* PF2 */ #define XWSIAID_PF3 0xf3 /* PF3 */ #define XWSIAID_PF4 0xf4 /* PF4 */ #define XWSIAID_PF5 0xf5 /* PF5 */ #define XWSIAID_PF6 0xf6 /* PF6 */ #define XWSIAID_PF7 0xf7 /* PF7 */ #define XWSIAID_PF8 0xf8 /* PF8 */ #define XWSIAID_PF9 0xf9 /* PF9 */ #define XWSIAID_PF10 0x7a /* PF10 */ #define XWSIAID_PF11 0x7b /* PF11 */ #define XWSIAID_PF12 0x7c /* PF12 */ #define XWSIAID_PF13 0xc1 /* PF13 */ #define XWSIAID_PF14 0xc2 /* PF14 */ #define XWSIAID_PF15 0xc3 /* PF15 */ #define XWSIAID_PF16 0xc4 /* PF16 */ #define XWSIAID_PF17 0xc5 /* PF17 */ #define XWSIAID_PF18 0xc6 /* PF18 */ #define XWSIAID_PF19 0xc7 /* PF19 */ #define XWSIAID_PF20 0xc8 /* PF20 */ #define XWSIAID_PF21 0xc9 /* PF21 */ #define XWSIAID_PF22 0x4a /* PF22 */ #define XWSIAID_PF23 0x4b /* PF23 */ #define XWSIAID_PF24 0x4c /* PF24 */ #define XWSIAID_ENT 0x7d /* Enter */ #define XWSIAID_LP 0x7e /* Light Pen */ #define XWSIAID_TRG 0x7f /* Trigger Field */ #define XWSIAID_PA1 0x6c /* PA1 */ #define XWSIAID_PA2 0x6e /* PA2 */ #define XWSIAID_PA3 0x6b /* PA3 */ #define XWSIAID_CLR 0x6d /* Clear */ #define XWSIAID_SHD 0x88 /* 疑似AID */ #define XWSIAID_NODP 0x60 /* No AID (LU2) */ #define XWSIAID_NOLP 0xe8 /* No AID (LU3) */ #define XWSIAID_ID10 0xe6 /* ID Card 10ch */ #define XWSIAID_ID64 0xe7 /* ID Card 64ch */
(13) PIDコード
#define XWSIPID_SYSR 0x52 /* SYSTEM REQUEST */ #define XWSIPID_ATTN 0x53 /* ATTENTION */ #define XWSIPID_TEST 0x58 /* TEST */
(14) 付加データ情報指定
#define XWSIKC_NOOPT 0 /* 画面データのみ */ #define XWSIKC_FLDINF 1 /* 画面データ,フィールドアトリビュート情報 */
(15) DSPEMU終了情報
#define XWSIEMU_ENDOFF 0 /* EMU終了キーが押されていない */ #define XWSIEMU_ENDON 1 /* EMU終了キーが押されている */
(16) DSPEMU動作状態
#define XWSIEMU_NOTBE 0 /* 非動作中 */ #define XWSIEMU_ESTATED 1 /* ESTART によりDSPEMUが起動されている. */ #define XWSIEMU_OTHRSEC 2 /* 他セッションでDSPEMUが起動されている. */
(17) DSPEMU動作情報(キーボードエミュレーション, 状態表示行の表示指定)
#define XWSIEMU_KBON 0 /* 指定あり */ #define XWSIEMU_KBOFF 1 /* 指定なし */
(18) ESTART画面制御情報
#define XWSIW_HIDE 0 /* DSPEMU画面を非表示にする.他のウィンドウがアクティブになる*/ #define XWSIW_SHOWACT 1 /* DSPEMU画面をアクティブにする.最大化/最小化されている場合はそれ以前の状態に復元する*/ #define XWSIW_SHOWMAX 3 /* DSPEMU画面を最大化してアクティブにする */ #define XWSIW_SHOWNOACT 4 /* DSPEMU画面をその前に表示されていたサイズと位置で表示する.*/ #define XWSIW_MINIMIZE 6 /* DSPEMU画面をアイコンにする.ウィンドウマネージャ内の先頭ウィンドウがアクティブになる.*/ #define XWSIW_SHOWMIN 7 /* DSPEMU画面をアイコンにする.アクティブウィンドウの変更はしない*/ #define XWSIW_SHOWNA 8 /* DSPEMU画面を現在の状態で表示する.アクティブウィンドウの変更はしない.*/
(19) ESTART画面状態情報
#define XWSIW_ICON 0 /* 最小化状態 */ #define XWSIW_INACTIVE 1 /* 非アクティブ状態 */ #define XWSIW_ACTIVE 2 /* アクティブ状態 */ #define XWSIW_MAXINACTIVE 3 /* 最大化、非アクティブ状態 */ #define XWSIW_MAXACTIVE 4 /* 最大化、アクティブ状態 */
(20) デバイス状態情報
#define XWSIDEV_NOTSPOTED 0xFF /* 未サポート状態 */ (1)READY #define XWSIDEV_READY 0x00 /* ディスプレイおよび制御装置が動作可能 */ #define XWSIDEV _NOTREADY 0x01 /* ディスプレイおよび制御装置が動作不可能 */ (2)通信ルール #define XWSIDEV_UNCNCTED 0x00 /* ホストコンピュータと接続していない */ #define XWSIDEV_RULE_A 0x01 /* BSCあるいは チャネル接続 */ #define XWSIDEV_RULE_B 0x02 /* HDLC 接続 */ #define XWSIDEV_RULE_D 0x03 /* DDX 接続 */ #define XWSIDEV_OFFLINE 0x04 /* デバイスがオフライン状態 */ (3)接続状態 #define XWSIDEV_AC_UNCNCT 0x00 /* HDLC 接続時SYSREQキーでLOGON/LOGOFFが可能 */ #define XWSIDEV_APLPGM 0x01 /* ディスプレイがホストプログラムと結合中 */ #define XWSIDEV_SYSCTLPGM 0x02 /* HDLC接続時でLOGON/LOGOFFが可能 */ #define XWSIDEV_CALLREADY 0x03 /* DDX接続で発着呼が可能 */ #define XWSIDEV_CALL 0x04 /* DDX接続で呼が確立している */ (4)入力禁止状態 #define XWSIDEV_INPPOSBL 0x00 /* 入力可能 */ #define XWSIDEV_LOCK 0x01 /* 処理中 */ #define XWSIDEV_PGMLOCK 0x02 /* 入力禁止状態 */ #define XWSIDEV_UNAVLBLFUNC 0x03 /* デバイスのリクエストが使用できない */ #define XWSIDEV_UNACEPTED 0x04 /* 入力禁止状態での入力 */ #define XWSIDEV_PGMERROR 0x05 /* ホストで受信データにエラー検出 */ #define XWSIDEV_CNCLEDREQ 0x06 /* 通信エラーによりリクエストがキャンセル */ #define XWSIDEV_CALLERROR 0x07 /* DDX接続時接続エラー検出 */ #define XWSIDEV_MUCHENT 0x08 /* フィールドデータ超過 */ #define XWSIDEV_WRONGPLACE 0x09 /* 入力位置不正 */ #define XWSIDEV_NUMRICLOCK 0x0A /* 数字フィールド不正データ入力 */ #define XWSIDEV_SHORTENT 0x0B /* フィールドデータ不足 */ #define XWSIDEV_NOENT 0x0C /* フィールドデータなし */ #define XWSIDEV_NETERROR 0x0D /* DDX手順で発呼操作誤り */ (5)通信エラー #define XWSIDEV_NORM 0x00 /* 通信状態正常 */ #define XWSIDEV_COMUERROR 0x01 /* 通信エラー発生 */
(21) DUET会話型データ転送
#define XWSIDC_MSG 0 /* メッセージ */ #define XWSIDC_RESP 1 /* レスポンス */ #define XWSIDC_NONWAIT 0 /* NON WAIT モード */ #define XWSIDC_WAIT 1 /* WAIT モード */
(22) DUETファイル転送
(1)ホストデータ情報 #define XWSIMAXFILENAM 65 typedef struct { UCHAR file_name[XWSIMAXFILENAM]; UCHAR resv1; ULONG date_length; UCHAR rec_form; UCHAR resv2; USHORT rec_length; } XWsiHostDataInf; (2)ファイル転送パラメータ #define XWSIMAXWSFILENAM 256 typedef struct { UCHAR file_form; /* ファイル形式 */ UCHAR file_name[XWSIMAXWSFILENAM]; /* 転送格納ファイル名 */ UCHAR save_form; /* 格納形式 */ UCHAR code_type; /* コード変換指定 */ UCHAR rec_form; /* レコード形式 */ USHORT rec_length; /* レコード長 */ UCHAR tabset; /* タブ指定 */ UCHAR compact; /* 圧縮変換 */ ULONG file_size; /* リザーブ */ UCHAR uDC_block; /* ユーザー文字区画指定 */ UCHAR exkanji; /* リザーブ */ } XWsiDFParam; typedef struct { ULONG trns_state; /* ファイル転送状態 */ USHORT trns_rate_unit; /* 転送率の内容 */ ULONG trns_rate; /* 転送率 */ } XWsiTrnsStat; #define XWSIDF_RECV 0 /* 送受信区別 : 受信 */ #define XWSIDF_SEND 1 /* : 送信 */ #define XWSIDF_FIX 1 /* レコード形式 : 固定 */ #define XWSIDF_VARIABLE 2 /* : 可変 */ #define XWSIDF_TEXT 1 /* ファイル形式 : TEXT */ #define XWSIDF_BINARY 2 /* : BINARY */ #define XWSIDF_UPDATE 1 /* ファイル作成モード : 新規 */ #define XWSIDF_ADD 2 /* : 追加 */ #define XWSIDF_COMP 0 /* 圧縮指定(送信時) : あり */ #define XWSIDF_NOCOMP 1 /* : なし */ #define XWSIDF_UNIT_PCNT 0x25 /* 転送率の単位 :パーセント */ #define XWSIDF_UNIT_BYTE 0x42 /* :バイト数 */ #define XWSIDF_EBCALPH 1 /* EBCDIC 英小文字 */ #define XWSIDF_EBCKANA 2 /* EBCDIC カナ有り */ #define XWSIDF_STUP 3 /* セットアップファイル設定コード */ #define XWSIDF_EBCASCI 4 /* EBCDIC ASCII */ #define XWSIDF_REQSENSE 0 /* 要求モード SENSE */ #define XWSIDF_REQWAIT 1 /* 要求モード WAIT */ #define XWSIDF_STIDLE 0 /* 転送状態 IDLE/END */ #define XWSIDF_STTRAN 1 /* 転送状態 実行中 */ #define XWSIDF_STWAITP 2 /* 転送状態 パラメータ待ち */