| 日本-日本語 | 
      
  | 
  
      
  | 
  
| 
 | 
     
OpenVMS マニュアル | 
    
  
  | 
    
     
 日本語 OpenVMS 
 | 
    
    
  
| 目次 | 索引 | 
SMG$CREATE_VIRTUAL_KEYBOARD | 
Create a Virtual Keyboard ルーチンは,仮想キーボードを作成してキーボード識別子を返します。
SMG$CREATE_VIRTUAL_KEYBOARDkeyboard-id [,input-device] [,default-filespec] [,resultant-filespec] [,recall-size]
OpenVMS 用法 cond_value データ型 longword (unsigned) アクセス write only 受け渡し方 by value 
keyboard-id
OpenVMS 用法 identifier データ型 longword (unsigned) アクセス write only 受け渡し方 by reference 
新規に作成したキーボードの識別子。 keyboard-id 引数は,キーボード識別子を格納する符号なしロングワードのアドレスです。input-device
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor 
仮想キーボードで使用される,ファイル指定,ファイル論理名,または漢字ターミナルの論理名。input-device 引数は,ファイル指定を示すディスクリプタのアドレスです。省略時の設定値は SYS$INPUT です。
注意 
日本語 SMG では,ファイルからの入力はサポートされていません。
default-filespec
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor 
ファイル指定のシステム設定値。 default-filespec 引数は,ファイル指定のシステム設定値を示すディスクリプタのアドレスです。default-filespec 引数を省略した場合は,空文字列を使用します。input-device 引数でファイル名とファイル・タイプを指定し, default-filespec 引数で装置とディレクトリを指定することもできます。
注意 
日本語 SMG では,ファイルからの入力はサポートされていません。
resultant-filespec
VMS 用法: char_string データ型: character string アクセス: write only 受け渡し方: by descriptor 
実際に使用されたファイル指定。 resultant-filespec 引数は,実際に使用されたファイル指定が,完全に展開された形式で書き込まれる文字列を示すディスクリプタのアドレスです。
注意 
日本語 SMG では,ファイルからの入力はサポートされていません。
recall-size
OpenVMS 用法 byte_unsigned データ型 byte (unsigned) アクセス read only 受け渡し方 by reference 
再呼び出しのために保存される入力行数。 recall-size 引数は省略可能で,行数を格納した符号なしバイトのアドレスです。0 に設定すると入力行を再び呼び出すことができなくなります。 recall-size 引数を省略した場合は,20 行が保存されます。
SMG$CREATE_VIRTUAL_KEYBOARD ルーチンは,ファイル指定(ターミナル名または RMS ファイル)と仮想キーボードの関係を設定します。入力ストリームを識別するため,キーボード識別子は他の SMG$ プロシージャに渡されます。SMG$CREATE_PASTEBOARD ルーチンも同時に呼んでいる場合には,それが SMG$CREATE_VIRTUAL_KEYBOARD ルーチンを呼び出す前に呼ばれていなければなりません。プロシージャは漢字ターミナルにチャネルを割り当て,ターミナル・キーボードにアプリケーション・モード(サポート時のみ)を設定します。仮想キーボードが削除される際に,これらの属性にはもとの値が復元されます。仮想キーボードはイメージの終了時に自動的に削除されます。SMG$DELETE_VIRTUAL_KEYBOARD ルーチンで削除することもできます。
SS$_NORMAL 正常終了。 LIB$_INSEF イベント・フラグ数が不足しています。 LIB$_INSTRDES 仮想ディスクリプタが誤っています。 LIB$_INSVIRMEM 仮想メモリが不足しています。 SMG$_FILTOOLON ファイル指定が長すぎます(最大 255 バイト)。 SMG$_WRONUMARG 引数の数が誤っています。 その他 $OPEN または $CONNECT により RMS から戻される状態値。 
$GETDVIW,$ASSIGN,または $DCLEXH から戻される状態値。
| #1 | 
|---|
C+ 
C This FORTRAN example program demonstrates the use of 
C SMG$CREATE_VIRTUAL_KEYBOARD, SMG$CREATE_KEY_TABLE, 
C SMG$ADD_KEY_DEF, and SMG$READ_COMPOSED_LINE. 
C- 
 
        INTEGER SMG$CREATE_VIRTUAL_KEYBOARD, SMG$CREATE_KEY_TABLE 
        INTEGER SMG$ADD_KEY_DEF, SMG$READ_COMPOSED_LINE 
        INTEGER SMG$DELETE_KEY_DEF, KEYBOARD, KEYTABLE, STATUS 
 
C+ 
C Include the SMG definitions. In particular, we want SMG$M_KEY_NOECHO 
C and SMG$M_KEY_TERMINATE. 
C- 
 
        INCLUDE '($SMGDEF)' 
 
C+ 
C Create a virtual keyboard (using SMG$CREATE_VIRTUAL_KEYBOARD) 
C and create a key table (using SMG$CREATE_KEY_TABLE). 
C- 
 
        STATUS = SMG$CREATE_VIRTUAL_KEYBOARD (KEYBOARD) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$CREATE_KEY_TABLE (KEYTABLE) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Prompt the user with the following instructions. 
C- 
 
        WRITE (6,*) 'When you see the prompt (->), strike the following' 
        WRITE (6,*) 'keys (on the KEYPAD): ' 
        WRITE (6,*) '           PF1 ' 
        WRITE (6,*) '           5 ' 
        WRITE (6,*) '           PF3 ' 
        WRITE (6,*) ' ' 
        WRITE (6,*) 'When you have done this, the following sentence' 
        WRITE (6,*) '(and nothing more) should appear following the' 
        WRITE (6,*) 'prompt: ' 
        WRITE (6,*) '(PF3 should act as a carriage return.)' 
        WRITE (6,*) ' ' 
        WRITE (6,*) 'NOW IS THE TIME FOR ALL TEXT TO APPEAR.' 
 
C+ 
C Add key definitions by calling SMG$ADD_KEY_DEF. 
C- 
 
        STATUS = SMG$ADD_KEY_DEF (KEYTABLE, 'PF1', , , 
     1  'NOW IS THE TIME FOR ') 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$ADD_KEY_DEF (KEYTABLE, 'KP5', , , 
     1  'TEXT TO APPEAR.') 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$ADD_KEY_DEF (KEYTABLE, 'PF3', , 
     1  SMG$M_KEY_NOECHO + SMG$M_KEY_TERMINATE , 
     1  'THIS SHOULD NOT BE ECHOED.  IF YOU CAN 
     1  SEE THIS, AN ERROR EXISTS.') 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Call SMG$READ_COMPOSED_LINE to read a line of input. 
C- 
 
        WRITE(6,*) ' ' 
        STATUS = SMG$READ_COMPOSED_LINE (KEYBOARD, KEYTABLE, R_TEXT, 
     1          '->') 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        END 
 
 | 
出力例
 $ RUN example
When you see the prompt (->), strike the following keys (on the KEYPAD): PF1 5 PF3 When you have done this, the following sentence (and nothing more) should appear following the prompt: (PF3 should act as a carriage return.)
 NOW IS THE TIME FOR ALL TEXT TO APPEAR. ->NOW IS THE TIME FOR ALL TEXT TO APPEAR. $
SMG$CURSOR_COLUMN | 
Return Cursor Column Position ルーチンは,指定された仮想ディスプレイ内の仮想カーソルの,現在のカラム位置を戻します。
SMG$CURSOR_COLUMN display-id
OpenVMS 用法 longword_unsigned データ型 longword (unsigned) アクセス write only 受け渡し方 by value 
SMG$CURSOR_COLUMN ルーチンは現在の仮想カーソルのカラム位置を戻します。
display-id
OpenVMS 用法 identifier データ型 longword (unsigned) アクセス read only 受け渡し方 by reference 
カラム位置が戻される対象となるディスプレイ。 display-id 引数は,ディスプレイ識別子を格納した符号なしロングワードのアドレスです。
SMG$CURSOR_COLUMN ルーチンは,指定された仮想ディスプレイ内の,現在の仮想カーソルのカラム位置の値を格納するロングワードを戻します。display-id 引数を省略した場合には,このルーチンは SMG$_WRONUMARG を通知します。 display-id 引数が誤っている場合には,このルーチンは SMG$_INVDIS_ID を通知します。
SMG$_INVDIS_ID display-id 引数に誤りがあります。 SMG$_WRONUMARG 引数の数が誤っています。 
SMG$CURSOR_ROW | 
Return Cursor Row Position ルーチンは,指定された仮想ディスプレイ内で仮想カーソルの現在の行番号を戻します。
SMG$CURSOR_ROW display-id
OpenVMS 用法 longword_unsigned データ型 longword (unsigned) アクセス write only 受け渡し方 by value 
SMG$CURSOR_ROW ルーチンは現在の行番号を戻します。
display-id
OpenVMS 用法 identifier データ型 longword (unsigned) アクセス read only 受け渡し方 by reference 
行番号が戻される対象となるディスプレイ。display-id 引数は,ディスプレイ識別子を格納した符号なしロングワードのアドレスです。
SMG$CURSOR_ROW ルーチンは,指定された仮想ディスプレイの現在の仮想カーソルの行番号の値を格納するロングワードを戻します。display-id 引数を省略した場合には,このルーチンは SMG$_WRONUMARG を通知します。display-id 引数が誤っている場合には,このルーチンは SMG$_INVDIS_ID を通知します。
SMG$_INVDIS_ID display-id 引数に誤りがあります。 SMG$_WRONUMARG 引数の数が誤っています。 
SMG$DEFINE_KEY | 
Perform a DEFINE/KEY Command ルーチンは,ユーザが指定した DEFINE/KEY コマンドを実行します。
SMG$DEFINE_KEY key-table-id ,command-string
OpenVMS 用法 cond_value データ型 longword(unsigned) アクセス write only 受け渡し方 by value 
key-table-id
OpenVMS 用法 identifier データ型 longword(unsigned) アクセス read only 受け渡し方 by reference 
DEFINE/KEY コマンドが実行されるキー定義テーブルの識別子。 key-table-id 引数は,キー・テーブル識別子を格納した符号なしロングワードのアドレスです。key-table-id 引数は SMG$CREATE_KEY_TABLE ルーチンによって与えられます。
command-string
OpenVMS 用法 char_string データ型 character string アクセス read only 受け渡し方 by descriptor 
実行される DEFINE/KEY コマンドを格納した文字列。command-string 引数は,実行されるコマンドを示すディスクリプタのアドレスです。DEFINE/KEY コマンドに対して指定できる修飾子は次のとおりです。
- /TERMINATE
 - /NOECHO
 - /LOCK
 - /IF_STATE
 - /SET_STATE
 
DEFINE/KEY コマンドの修飾子に対して,次の 2 つの制約事項が適用されます。
- /LOCK 修飾子を使用する場合には,/SET_STATE 修飾子も使用しなければならない。
 - /SET_STATE 修飾子と /TERMINATE 修飾子をどちらとも使用する場合には, /LOCK 修飾子は使用できない。
 
SMG$DEFINE_KEY ルーチンは,DEFINE/KEY コマンドを解析し,実行します。 DEFINE/KEY コマンドを受け付けるだけで,そのコマンドを独自に解析しないプログラムは,このルーチンを使用できます。SMG$DEFINE_KEY ルーチンは,CLI$DCL_PARSE ルーチンを呼び出すことにより,コマンド行を解析し,その後,必要に応じて SMG$ADD_KEY_DEF ルーチンを呼び出します。もとのコマンドは,CLI$DCL_PARSE を呼び出すことにより復元できます。このプロシージャを使用する場合には,DCL コマンド言語インタプリタのもとでイメージを実行していなければなりません。
SS$_NORMAL 正常終了。 SMG$_WRONUMARG 引数の数が誤っています。 その他 LIB$SCOPY_DXDX,CLI$ ルーチン,SMG$ADD_KEY_DEF から戻された状態値。 
SMG$DEL_TERM_TABLE | 
Delete Terminal Table ルーチンは,個人用の TERMTABLE.EXE に対するアクセスを終了し,仮想アドレス空間の割り当てを解除します。
SMG$DEL_TERM_TABLE
OpenVMS 用法 cond_value データ型 longword (unsigned) アクセス write only 受け渡し方 by value 
なし
データ型 アクセス 
SMG$DEL_TERM_TABLE ルーチンは,個人用の TERMTABLE.EXE に対するアクセスを終了します。このルーチンの呼び出しは必ずしも必要ありません。このルーチンは,個人用の TERMTABLE.EXE によって使用されていた仮想アドレス空間を,呼び出しプログラムが再利用しなければならないときに便利です。このルーチンを使用しなければならないのは,漢字ターミナルに対して直接に日本語 SMG ルーチン以外の入出力を実行する場合だけです。
SS$_NORMAL 正常終了。 
| 目次 | 索引 | 
      
  | 
  ||||||||