ページの先頭行へ戻る
WSMGR ソフトウェア開発キット V8 使用手引書
FUJITSU Software

4.5 WSAPIの構造体・定数名定義

本節では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            /* 転送状態 パラメータ待ち  */