| 前へ | 次へ | 目次 | 索引 | 
この章は,IMLIB を使ったプログラムの開発について書かれています。 IMLIB は,C および FORTRAN によるアプリケーションプログラムの開発をサポートしています。
6.1 ヘッダ・ファイル
IMLIB は,エラー・シンボル,KEY のシンボル,ACTION のシンボルを定義した以下のようなヘッダ・ファイルを提供しています。
| SYS$LIBRARY:IM$DEF.H | (C のヘッダファイル) | 
| SYS$LIBRARY:IM$DEF.FOR | (FORTRAN のヘッダファイル) | 
アプリケーションは,ソース・ファイルの中にヘッダ・ファイルを次のような形で取り込みます。
例:ヘッダ・ファイルの取り込み (C の場合)
. . . #include <IM$DEF.H> . . .  | 
例:ヘッダ・ファイルの取り込み (FORTRANの場合)
. . . INCLUDE 'SYS$LIBRARY:IM$DEF.FOR' . . .  | 
6.2 コンパイル・リンクの方法
ここでは,作成されたアプリケーション・プログラムの,コンパイルおよびリンクについて説明します。IMLIB は,シェアラブル・ライブラリの形式で次の場所に提供されています。
SYS$SHARE:IM$SHR.EXE
6.2.1 Cで書かれたアプリケーション・プログラム
C 言語で書かれたアプリケーション・プログラムが,現在のディレクトリに APPLICATION.C という名前で置かれている場合に,コンパイルおよびリンクは以下のように行われます。通常 APPLICATION.C は日本語ライブラリ (JSYSHR) を使っていますので,リンクのオプションには JSYSHR.EXE が含まれます。
なお,OpenVMS AXP オペレーティング・システムを利用している場合は, SYS$SHARE:VAXCRTL.EXE をリンクする必要はありません。
$ CC APPLICATION.C $ LINK APPLICATION,SYS$INPUT/OPTION SYS$SHARE:VAXCRTL/SHARE SYS$SHARE:IM$SHR/SHARE SYS$SHARE:JSYSHR/SHARE [CTRL/Z] $  | 
この結果 APPLICATION.EXE という実行イメージが現在のディレクトリに作成されます。
6.2.2 FORTRAN で書かれたアプリケーション・プログラム
FORTRAN 言語で書かれたアプリケーション・プログラムが,現在のディレクトリに APPLICATION.FOR という名前で置かれているとするとコンパイルおよびリンクは以下のように行われます。通常 APPLICATION.FOR は,日本語ライブラリ (JSYSHR) を使っていますので,リンクのオプションには JSYSHR.EXE が含まれます。
$ FORTRAN APPLICATION.FOR $ LINK APPLICATION,SYS$INPUT/OPTION SYS$SHARE:IM$SHR/SHARE SYS$SHARE:JSYSHR/SHARE [CTRL/Z] $  | 
この結果 APPLICATION.EXE という実行イメージが現在のディレクトリに作成されます。
KEYSYM TO KEYCODEがサポートするKEYSYMを 表 A-1 に示します。
| Byte3 | Byte4 Range | 説明 | 文字セット | 
|---|---|---|---|
| 000 | 032 --- 126 | ASCII の表示文字 | Latin-1 | 
| 004 | 161 --- 223 | すべての半角カナ文字 | Kana | 
| 255 | 009 | TAB | Keyboard | 
| 255 | 013 | RETURN | Keyboard | 
| 255 | 081 | LEFT | Keyboard | 
| 255 | 082 | UP | Keyboard | 
| 255 | 083 | RIGHT | Keyboard | 
| 255 | 084 | DOWN | Keyboard | 
| 255 | 085 | PREVIOUS | Keyboard | 
| 255 | 086 | NEXT | Keyboard | 
| 255 | 096 | SELECT | Keyboard | 
| 255 | 098 | DO | Keyboard | 
| 255 | 099 | INSERT HERE | Keyboard | 
| 255 | 104 | FIND | Keyboard | 
| 255 | 106 | HELP | Keyboard | 
| 255 | 141 | KEYPAD ENTER | Keyboard | 
| 255 | 145 | KEYPAD PF1 | Keyboard | 
| 255 | 146 | KEYPAD PF2 | Keyboard | 
| 255 | 147 | KEYPAD PF3 | Keyboard | 
| 255 | 148 | KEYPAD PF4 | Keyboard | 
| 255 | 172 | KEYPAD COMMA | Keyboard | 
| 255 | 173 | KEYPAD MINUS SIGN | Keyboard | 
| 255 | 174 | KEYPAD DECIMAL POINT | Keyboard | 
| 255 | 176 | KEYPAD DIGIT ZERO | Keyboard | 
| 255 | 177 | KEYPAD DIGIT ONE | Keyboard | 
| 255 | 178 | KEYPAD DIGIT TWO | Keyboard | 
| 255 | 179 | KEYPAD DIGIT THREE | Keyboard | 
| 255 | 180 | KEYPAD DIGIT FOUR | Keyboard | 
| 255 | 181 | KEYPAD DIGIT FIVE | Keyboard | 
| 255 | 182 | KEYPAD DIGIT SIX | Keyboard | 
| 255 | 183 | KEYPAD DIGIT SEVEN | Keyboard | 
| 255 | 184 | KEYPAD DIGIT EIGHT | Keyboard | 
| 255 | 185 | KEYPAD DIGIT NINE | Keyboard | 
| 255 | 190 | F1 | Keyboard | 
| 255 | 191 | F2 | Keyboard | 
| 255 | 192 | F3 | Keyboard | 
| 255 | 193 | F4 | Keyboard | 
| 255 | 194 | F5 | Keyboard | 
| 255 | 195 | F6 | Keyboard | 
| 255 | 196 | F7 | Keyboard | 
| 255 | 197 | F8 | Keyboard | 
| 255 | 198 | F9 | Keyboard | 
| 255 | 199 | F10 | Keyboard | 
| 255 | 200 | F11 | Keyboard | 
| 255 | 201 | F12 | Keyboard | 
| 255 | 202 | F13 | Keyboard | 
| 255 | 203 | F14 | Keyboard | 
| 255 | 206 | F17 | Keyboard | 
| 255 | 207 | F18 | Keyboard | 
| 255 | 208 | F19 | Keyboard | 
| 255 | 209 | F20 | Keyboard | 
| 255 | 255 | DELETE | Keyboard | 
| 255 | 33 | Kanji | Keyboard | 
| 255 | 34 | Muhenkan | Keyboard | 
| 255 | 37 | HiraganaHenkan | Keyboard | 
IMLIB が定義するシンボルは,以下のヘッダ・ファイルとして提供されています。
B.1 エラー・シンボル
ライブラリが返すエラーのシンボルを 表 B-1 に示します。
| シンボル | 意味 | 
|---|---|
| IM__SUCCESS | 正常終了 | 
| IM__LASTACTION | 複数 ACTION の最後の ACTION である | 
| IM__NOPRINTABLE | 表示される文字でない | 
| IM__PARTIALKEY | 複数キーの途中である | 
| IM__KEYNOTDEFINED | キーが定義されていない | 
| IM__NOACTION | 指定されたキーに ACTION が存在しない | 
| IM__TRUNCATED | 文字列が切り捨てられた | 
| IM__NORECOVER | リカバー STATE がない | 
| IM__SYNTAXERR | 構文エラー | 
| IM__INSVIRMEM | 仮想メモリが足りない | 
| IM__CANNOTOPN | ファイルがオープンできない | 
| IM__ILLUNIT | 正しくない UNIT 番号が指定された | 
| IM__NOINDEX | PROFILEファイルに INDEX が存在しない | 
| IM__ILLFORMAT | KEYBIND ファイルのフォーマットが間違っている | 
| IM__FILNOTFND | ファイルが見つからない | 
| IM__NOKEYBIND | KEYBIND のデータがセットされていない | 
| IM__NOTKEYNAME | KEY の名前を示す文字列が間違っている | 
| IM__INVKEYCODE | KEYCODE が正しくない | 
| IM__ILLESCAPE | エスケープ・シーケンスが正しくない | 
| IM__UNSUPKEYSYM | サポートされない KEYSYM が指定された | 
| IM__READERR | ファイルを読み込めない | 
| IM__WRITEERR | ファイルに書き込みができない | 
| IM__KEYNOTSET | GET ACTION の前に SET KEY が呼ばれていない | 
| IM__INVSTRDES | 文字列デスクリプタが正しくない | 
| IM__ILLLEVEL | KEYBIND ファイルのレベルが合わない | 
| IM__FATERRLIB | ライブラリの致命的なエラー | 
| IM__INVCODESET | 不正なコードセットが指定された | 
B.2 ACTIONを示すシンボル
ライブラリがサポートする ACTION のシンボルを 表 B-2 に示します。
| ACTION | シンボル | 
|---|---|
| CONVERT | IM_ACTION_CONVERT | 
| HIRAGANA | IM_ACTION_HIRAGANA | 
| KATAKANA | IM_ACTION_KATAKANA | 
| HANKAKU_KANA | IM_ACTION_HANKAKU_KANA | 
| ZENKAKU | IM_ACTION_ZENKAKU | 
| HANKAKU | IM_ACTION_HANKAKU | 
| UPPER | IM_ACTION_UPPER | 
| LOWER | IM_ACTION_LOWER | 
| CLA_HIRAGANA | IM_ACTION_CLA_HIRAGANA | 
| CLA_KATAKANA | IM_ACTION_CLA_KATAKANA | 
| CLA_HANKAKU_KANA | IM_ACTION_CLA_HANKAKU_KANA | 
| CLA_ZENKAKU | IM_ACTION_CLA_ZENKAKU | 
| CLA_HANKAKU | IM_ACTION_CLA_HANKAKU | 
| NEXT_CLAUSE | IM_ACTION_NEXT_CLAUSE | 
| PREV_CLAUSE | IM_ACTION_PREV_CLAUSE | 
| SHORTEN_CLAUSE | IM_ACTION_SHORTEN_CLAUSE | 
| EXTEND_CLAUSE | IM_ACTION_EXTEND_CLAUSE | 
| ECHO | IM_ACTION_ECHO | 
| MOVE_LEFT | IM_ACTION_MOVE_LEFT | 
| MOVE_RIGHT | IM_ACTION_MOVE_RIGHT | 
| DELETE | IM_ACTION_DELETE | 
| RESTORE_STRING | IM_ACTION_RESTORE_STRING | 
| RESTORE_ECHO | IM_ACTION_RESTORE_ECHO | 
| NONE | IM_ACTION_NONE | 
| START | IM_ACTION_START | 
| DONE | IM_ACTION_DONE | 
| NEXT_CANDIDATE | IM_ACTION_NEXT_CANDIDATE | 
| PREV_CANDIDATE | IM_ACTION_PREV_CANDIDATE | 
| HEAD | IM_ACTION_HEAD | 
| TAIL | IM_ACTION_TAIL | 
| SYMBOL | IM_ACTION_SYMBOL | 
| DEC_KANJI_CODE | IM_ACTION_DEC_KANJI_CODE | 
| START_SELECTED | IM_ACTION_START_SELECTED | 
B.3 KEYを示すシンボル
ライブラリがサポートする KEY のシンボルを 
表 B-3 に示します。
| KEY | シンボル | 
|---|---|
| NULL | IM_KEY_NULL | 
| CTRL_A | IM_KEY_CTRL_A | 
| CTRL_B | IM_KEY_CTRL_B | 
| CTRL_C | IM_KEY_CTRL_C | 
| CTRL_D | IM_KEY_CTRL_D | 
| CTRL_E | IM_KEY_CTRL_E | 
| CTRL_F | IM_KEY_CTRL_F | 
| CTRL_G | IM_KEY_CTRL_G | 
| CTRL_H | IM_KEY_CTRL_H | 
| TAB | IM_KEY_CTRL_I | 
| CTRL_J | IM_KEY_CTRL_J | 
| CTRL_K | IM_KEY_CTRL_K | 
| CTRL_L | IM_KEY_CTRL_L | 
| RETURN | IM_KEY_CTRL_M | 
| CTRL_N | IM_KEY_CTRL_N | 
| CTRL_O | IM_KEY_CTRL_O | 
| CTRL_P | IM_KEY_CTRL_P | 
| CTRL_Q | IM_KEY_CTRL_Q | 
| CTRL_R | IM_KEY_CTRL_R | 
| CTRL_S | IM_KEY_CTRL_S | 
| CTRL_T | IM_KEY_CTRL_T | 
| CTRL_U | IM_KEY_CTRL_U | 
| CTRL_V | IM_KEY_CTRL_V | 
| CTRL_W | IM_KEY_CTRL_W | 
| CTRL_X | IM_KEY_CTRL_X | 
| CTRL_Y | IM_KEY_CTRL_Y | 
| CTRL_Z | IM_KEY_CTRL_Z | 
| ESC | IM_KEY_ESC | 
| FS | IM_KEY_FS | 
| GS | IM_KEY_GS | 
| RS | IM_KEY_RS | 
| US | IM_KEY_US | 
| DEL | IM_KEY_DEL | 
| F6 | IM_KEY_F6 | 
| F7 | IM_KEY_F7 | 
| F8 | IM_KEY_F8 | 
| F9 | IM_KEY_F9 | 
| F10 | IM_KEY_F10 | 
| F11 | IM_KEY_F11 | 
| F12 | IM_KEY_F12 | 
| F13 | IM_KEY_F13 | 
| F14 | IM_KEY_F14 | 
| HELP | IM_KEY_HELP | 
| DO | IM_KEY_DO | 
| F17 | IM_KEY_F17 | 
| F18 | IM_KEY_F18 | 
| F19 | IM_KEY_F19 | 
| F20 | IM_KEY_F20 | 
| KP0 | IM_KEY_KP0 | 
| KP1 | IM_KEY_KP1 | 
| KP2 | IM_KEY_KP2 | 
| KP3 | IM_KEY_KP3 | 
| KP4 | IM_KEY_KP4 | 
| KP5 | IM_KEY_KP5 | 
| KP6 | IM_KEY_KP6 | 
| KP7 | IM_KEY_KP7 | 
| KP8 | IM_KEY_KP8 | 
| KP9 | IM_KEY_KP9 | 
| MINUS | IM_KEY_MINUS | 
| COMMA | IM_KEY_COMMA | 
| PERIOD | IM_KEY_PERIOD | 
| ENTER | IM_KEY_ENTER | 
| PF1 | IM_KEY_PF1 | 
| PF2 | IM_KEY_PF2 | 
| PF3 | IM_KEY_PF3 | 
| PF4 | IM_KEY_PF4 | 
| LEFT | IM_KEY_LEFT | 
| UP | IM_KEY_UP | 
| RIGHT | IM_KEY_RIGHT | 
| DOWN | IM_KEY_DOWN | 
| PREV_SCREEN | IM_KEY_PREV_SCREEN | 
| NEXT_SCREEN | IM_KEY_NEXT_SCREEN | 
| SELECT | IM_KEY_SELECT | 
| INSERT_HERE | IM_KEY_INSERT_HERE | 
| FIND | IM_KEY_FIND | 
| REMOVE | IM_KEY_REMOVE | 
| SHIFT + [↑]キー(前文節移動) | IM_KEY_SHFT_UP | 
| SHIFT + [↓]キー(次文節移動) | IM_KEY_SHFT_DOWN | 
| SHIFT + [←]キー(文節縮小) | IM_KEY_SHFT_LEFT | 
| SHIFT + [→]キー(文節拡大) | IM_KEY_SHFT_RIGHT | 
| CTRL + [↑]キー | IM_KEY_CTRL_UP | 
| CTRL + [↓]キー | IM_KEY_CTRL_DOWN | 
| CTRL + [←]キー | IM_KEY_CTRL_LEFT | 
| CTRL + [→]キー | IM_KEY_CTRL_RIGHT | 
| ALT + [↑]キー | IM_KEY_ALT_UP | 
| ALT + [↓]キー | IM_KEY_ALT_DOWN | 
| ALT + [←]キー | IM_KEY_ALT_LEFT | 
| ALT + [→]キー | IM_KEY_ALT_RIGHT | 
| CTRL + ALT + [↑]キー | IM_KEY_CTRL_ALT_UP | 
| CTRL + ALT + [↓]キー | IM_KEY_CTRL_ALT_DOWN | 
| CTRL + ALT + [←]キー | IM_KEY_CTRL_ALT_LEFT | 
| CTRL + ALT + [→]キー | IM_KEY_CTRL_ALT_RIGHT | 
| CTRL + SHIFT + [↑]キー | IM_KEY_CTRL_SHFT_UP | 
| CTRL + SHIFT + [↓]キー | IM_KEY_CTRL_SHFT_DOWN | 
| CTRL + SHIFT + [←]キー | IM_KEY_CTRL_SHFT_LEFT | 
| CTRL + SHIFT + [→]キー | IM_KEY_CTRL_SHFT_RIGHT | 
| SHIFT + ALT + [↑]キー | IM_KEY_SHFT_ALT_UP | 
| SHIFT + ALT + [↓]キー | IM_KEY_SHFT_ALT_DOWN | 
| SHIFT + ALT + [←]キー | IM_KEY_SHFT_ALT_LEFT | 
| SHIFT + ALT + [→]キー | IM_KEY_SHFT_ALT_RIGHT | 
| CTRL + SHIFT + ALT + [↑]キー | IM_KEY_CTRL_SHFT_ALT_UP | 
| CTRL + SHIFT + ALT + [↓]キー | IM_KEY_CTRL_SHFT_ALT_DOWN | 
| CTRL + SHIFT + ALT + [←]キー | IM_KEY_CTRL_SHFT_ALT_LEFT | 
| CTRL + SHIFT + ALT + [→]キー | IM_KEY_CTRL_SHFT_ALT_RIGHT | 
| 変換 | IM_JFK_HENKAN | 
| SHIFT + 変換(前候補) | IM_JFK_SHFT_MAEKOUHO | 
| CTRL + 変換 | IM_JFK_CTRL_HENKAN | 
| ALT + 変換 | IM_JFK_ALT_HENKAN | 
| CTRL + SHIFT + 変換 | IM_JFK_CTRL_SHFT_HENKAN | 
| CTRL + ALT + 変換 | IM_JFK_CTRL_ALT_HENKAN | 
| CTRL + SHIFT + ALT + 変換 | IM_JFK_CTRL_SHFT_ALT_HENKAN | 
| 無変換 | IM_JFK_MUHENKAN | 
| SHIFT + 無変換(入力状態へ戻る) | IM_JFK_SHFT_MUHENKAN | 
| CTRL + 無変換 | IM_JFK_CTRL_MUHENKAN | 
| ALT + 無変換(記号変換) | IM_JFK_ALT_MUHENKAN | 
| CTRL + SHIFT + 無変換 | IM_JFK_CTRL_SHFT_MUHENKAN | 
| CTRL + ALT + 無変換 | IM_JFK_CTRL_ALT_MUHENKAN | 
| CTRL + SHIFT + ALT + 無変換 | IM_JFK_CTRL_SHFT_ALT_MUHENKAN | 
| ひらがな変換 | IM_JFK_HIRAGANA | 
| SHIFT + ひらがな変換(カタカナ変換) | IM_JFK_KATAKANA | 
| CTRL + ひらがな変換(半角カナ変換) | IM_JFK_CTRL_HIRAGANA | 
| ALT + ひらがな変換 | IM_JFK_ALT_HIRAGANA | 
| CTRL + SHIFT + ひらがな変換
 (半角カナ変換)  | 
IM_JFK_CTRL_SHFT_HIRAGANA | 
| CTRL + ALT + ひらがな変換 | IM_JFK_CTRL_ALT_HIRAGANA | 
| CTRL + SHIFT + ALT + ひらがな変換 | IM_JFK_CTRL_SHFT_ALT_HIRAGANA | 
| SS3 | IM_KEY_SS3 | 
| CSI | IM_KEY_CSI | 
| VOID | IM_KEY_VOID | 
| TYPING_KEYS | IM_KEY_TYPING_KEYS | 
| OTHERS | IM_KEY_OTHERS | 
| 前へ | 次へ | 目次 | 索引 |