4.7.3 dc_clt_open_notification_s − 一方通知受信の開始
(1) 形式
(a) TP1/Client/Wの場合
■ _s付き関数
#include <dcvclt.h> DCLONG dc_clt_open_notification_s(HWND hWnd, DCCLT_ID *ntfid, char *defpath, unsigned short port, DCLONG flags)
■ _s無し関数
#include <dcvclt.h> DCLONG dc_clt_open_notification(unsigned short port, DCLONG flags)
(b) TP1/Client/Pの場合
■ _s付き関数
#include <dcvclt.h> DCLONG dc_clt_open_notification_s(HWND hWnd, DCCLT_ID CLTFAR *ntfid, char CLTFAR *defpath, unsigned short port, DCLONG flags)
■ _s無し関数
#include <dcvclt.h> DCLONG dc_clt_open_notification(unsigned short port, DCLONG flags)
(2) 機能
サーバからの一方通知受信機能を使用するための環境を作成します。
この関数は,dc_clt_close_notification_s関数と対で発行します。
(3) UAPで値を設定する引数
-
hWnd
NULLを指定します。
-
ntfid
一方通知受信IDを受け取る領域へのポインタを指定します。
-
defpath
クライアント環境定義ファイルへのパス名を指定します。パス名には完全パス,またはカレントドライブ・ディレクトリからの相対パスが指定できます。パス名を指定した場合のファイルの読み込み順序を次に示します。
-
TP1/Client/Pの場合
クライアント環境定義ファイルの読み込み順序は次のとおりです。
1.WindowsディレクトリのBETRAN.INIファイル
2.引数defpathに指定したクライアント環境定義ファイル
定義は,クライアント環境定義ファイルおよびBETRAN.INIファイルのどちらのファイルに指定しても有効です。
両方のファイルに同じ定義を異なる値で指定した場合は,クライアント環境定義ファイルに指定した値が有効となります。
クライアント環境定義ファイルおよびBETRAN.INIファイルのどちらにも指定がない場合は,デフォルト値で動作します。
-
TP1/Client/Wの場合
環境変数に指定されている定義は,すべて無効となります。引数defpathに指定したクライアント環境定義ファイルに指定されていない定義はデフォルト値で動作します。
また,引数defpathの先頭にNULLを指定することでパス名を省略できます。省略時の動作を次に示します。
-
TP1/Client/Pの場合
WindowsディレクトリのBETRAN.INIファイルをクライアント環境定義ファイルとして動作します。BETRAN.INIファイルがない場合,または定義ファイルの内容が不正な場合はデフォルト値で動作します。
-
TP1/Client/Wの場合
環境変数の指定で動作します。環境変数が指定されていない場合は,デフォルト値で動作します。
引数defpathに指定したクライアント環境定義ファイルがない場合,または定義ファイルの内容が不正な場合の動作を次に示します。
-
TP1/Client/Pの場合
WindowsディレクトリのBETRAN.INIファイルをクライアント環境定義ファイルとして動作します。BETRAN.INIファイルがない場合,または定義ファイルの内容が不正な場合は,デフォルト値で動作します。
-
TP1/Client/Wの場合
デフォルト値で動作します。環境変数の指定は無効となります。
-
-
port
クライアントのポート番号を指定します。5001から65535の範囲で指定します。なお,同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合は,それぞれ異なるポート番号を指定してください。
-
flags
DCNOFLAGSを指定します。
(4) 値が返される引数
-
ntfid
一方通知受信IDが返されます。
(5) リターン値
リターン値 |
数値 (10進数) |
意味 |
---|---|---|
DC_OK |
0 |
正常終了しました。 |
DCCLTER_INVALID_ARGS |
-2501 |
引数に指定した値が誤っています。 |
DCCLTER_PROTO |
-2502 |
dc_clt_open_notification関数がすでに実行されています。dc_clt_open_notification_s関数実行時は,このリターン値は返りません。 |
DCCLTER_FATAL |
-2503 |
初期化に失敗しました。または,クライアント環境定義の指定に誤りがあります。 |
DCCLTER_NO_BUFS |
-2504 |
必要なバッファが確保できませんでした。 |
DCCLTER_PORT_IN_USE |
-2547 |
指定したポート番号は使用されています。 |
(6) 注意事項
-
この関数が正常終了した場合は必ずdc_clt_close_notification_s関数を発行してください。dc_clt_close_notification_s関数を発行しなかった場合,リソースが残ることがあります。
-
同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合,引数portにはそれぞれ異なるポート番号を指定してください。また,引数portに指定できるポート番号でも,OSまたはほかのプログラムが使用するポート番号は指定しないでください。指定した場合,応答データを正しく受信できないことがあります。なお,OSが使用するポート番号は,OSごとに異なります。OSが使用するポート番号については,OSのマニュアルなどを参照してください。
-
TP1/Clientでは,dc_clt_open_notification_s関数の呼び出しごとにクライアント環境定義を定義できます。dc_clt_open_notification_s関数の呼び出しごとにクライアント環境定義を定義するには,dc_clt_open_notification_s関数の呼び出しごとに,異なるファイルをクライアント環境定義ファイルとして作成して,そのファイル名をdc_clt_open_notification_s関数の引数defpathに指定してください。