参考
COBOLから使用する場合は、CALL文でF3BJMI00.DLLからエクスポートしているこの関数を呼び出します。
他の利用者プログラムの入力中のMeFtのウィンドウに、入力中断依頼を行います。
#include <windows.h>
#define _ PS_DEP_SYSTEM
#include <psdef.h>
PSINT PSFUNCTION ps_cancel_read(
HWND bswhndl,
PSLONG reserve)
bswhndl | : | 入力実行中のMeFtのウィンドウハンドルを指定します。ウィンドウハンドルは、ウィンドウハンドルの獲得で獲得してください。 |
reserve | : | リザーブです。必ず0を指定します。 |
利用者プログラムSAMPLE1が、利用者プログラムSAMPLE2に対して、入力中断依頼を行います。この例では、入力中断するウィンドウのウィンドウハンドルは、ファイルhWnd.DATによってSAMPLE1に渡しています。
PSFILE psfile; SAMPLE samp; PSUSHORT rtn; HWND hWnd; if((fp = fopen("hWnd.DAT", "r+b"))==NULL) return(1); fread((HWND)&hWnd, 4, 1, fp); fclose(fp); ps_cancel_read(hWnd, 0);
PSFILE psfile; SAMPLE samp; PSUSHORT rtn; HWND hWnd; psfile = ps_open("DSPFILE", PS_OPEN_DSP, &Error, 0); ps_set_formatsize(psfile, "SAMPLE", s_SAMPLE); if((fp = fopen("hWnd.DAT", "w+b"))==NULL) return(1); hWnd = ps_get_window(psfile, 0); fwrite(&hWnd, 4, 1, fp); /* ウィンドウハンドルをファイルに格納します。*/ fclose(fp); ps_read(psfile, PS_READ_NOERASE, "SCREEN", &samp, 0);
正常終了時には0が返されます。bswhndlで指定したウィンドウハンドルを持つ、ウィンドウがなかった場合には1が返されます。
処理中にオペレータがタスクリストからの終了を選択すると-1が返されます。その場合、利用者プログラムは必ず実行を終了してください。
入力中断を実行しても、入力中断直前までに入力したデータは、レコードデータ域に格納されます。
入力中断した利用者プログラムは、入力中断による入力完了として、アテンション情報(RC00)とMEFD_RC_OTHCAN(5A)を獲得できます。
入力中断を行った利用者プログラムは、入力中断できたかどうかを復帰値として獲得することができます。入力中断時の入力結果などを獲得することはできません。
入力中断したウィンドウが、入力の状態にない場合は、入力中断が保留されます。保留された入力中断依頼は、このウィンドウの次回入力時に処理します。
入力中断依頼を保留されたウィンドウに、複数の入力中断依頼を行っても、このウィンドウが処理する入力中断依頼は初めの1回だけで、それ以降の入力中断依頼は破棄されます。
入力中断依頼を保留したウィンドウがクローズした場合には、入力中断依頼は破棄されます。