• 検索結果がありません。

Initialize関数

N/A
N/A
Protected

Academic year: 2021

シェア "Initialize関数"

Copied!
97
0
0

読み込み中.... (全文を見る)

全文

(1)

B-TALK

Ver 1.01

(2)

1

はじめに

本書は『B-TALK』の機能および使用方法について説明したものです。 『B-TALK』は「全銀協標準通信プロトコル-TCP/IP 手順-」に準拠したファームバンキングや 金融関係のオンラインシステムをパーソナルコンピュータ(以降単に PC と表記します)上で構築可能 にする通信制御ソフトウェアです。そして、このようなシステムのアプリケーション作成におけるプ ログラミング言語にはVisual C++ Ver 4.0 以上または Visual Basic Ver 4.0 以上を前提としています。

そのため、本書は「全銀協標準通信プロトコル-TCP/IP 手順-」,Win32 プログラミング環境およ び各対応プログラミング言語について基礎的な知識をお持ちのユーザーを対象とした内容となって います。これらについては別途関連資料を参照してください。

● 「全銀協標準通信プロトコル-TCP/IP 手順-(Ver1)」 全国銀行協会連合会 ● Win32 プログラミングマニュアル

● Visual C++,Visual Basic プログラミングマニュアル

ご注意

① 本書およびソフトウェアの内容の一部または全部を無断で複製することは、プログラムのバックアッ プの場合をのぞき法律で禁止されています。 ② 本書およびソフトウェアの内容については将来予告無しに変更することがあります。 ③ 本ソフトウェアを使用した結果につきましては、いっさい責任を負いかねますのでご了承ください。 ④ 本書およびプログラムの内容は万全を期していますが、ご不審な点や誤っている点などがありました ら、ご連絡くださいますようお願いいたします。

Windows は米国 Microsoft Corporation およびその他の国における登録商標です。 その他、本書に記載されている会社名、製品名は各社の商標または登録商標です。

(3)

2

目次

1 お使いになる前に ...3

1.1 『B-TALK』とは ...3 1.2 『B-TALK』の特長 ...4 1.3 『B-TALK』の製品構成 ...5 1.4 通信形態 ...6 1.5 ハードウェアの条件 ...7 1.6 アプリケーション開発の条件...8 1.7 インストール ...9 1.8 ライセンス...10

2 環境設定 ... 11

2.1 初期設定ファイルの内容 ...11 2.2 初期設定ファイルの構成 ...13 2.3 初期設定ファイルの更新方法...14

3 アプリケーションプログラミング ...15

3.1 ライブラリの種類...15 3.2 アプリケーションとのインタフェース ...16 3.3 インタフェースの仕組み ...17 3.4 API関数の概要...18 3.5 API関数の詳細...19 3.6 電文別設定データ...39 3.7 イベントメッセージの概要 ...42 3.8 イベントメッセージの詳細 ...46 3.9 状態遷移 ...58 3.10 シーケンス...60 3.11 アプリケーションとAPIのリンク ...74 3.12 サンプルコーディング...75

4 ダイアログボックス ...80

4.1 回線接続状況 ...80 4.2 ファイル転送状況...81

5 トレースログ ...82

5.1 トレースログの種類 ...82 5.2 トレースログの見方 ...83 5.3 トレースログの例...85

6 結果コード...90

付録A コード変換表...92

(4)

3

1 お使いになる前に

『B-TALK』をお使いになるに当たって、事前に知っておいていただきたい点やご確認いただきた い点がいくつかあります。 本章ではその点について説明します。

1.1 『B-TALK』とは

『B-TALK』は Windows 上で動作するファイル転送用のミドルウェアです。 「全銀協標準通信プロトコル-TCP/IP 手順-」(以降単に全銀協 TCP/IP 手順と表記します) に準 拠していますので、各企業および各銀行間でのパソコンファームバンキングや金融業界のオンライン システムを構築可能です。通信相手となるシステムも全銀協TCP/IP 手順をサポートしていればメー カーに関係なく通信できます。 『B-TALK』はこれらのシステム構築を容易にするための全銀協 TCP/IP 手順の電文仕様に対応し たアプリケーションインタフェース(以降単に API と表記します)を持っていますので、Visual C++ またはVisual Basic を使って自由にアプリケーションを作成していただくことができます。 また、サンプルアプリケーションも付属していますので、特にアプリケーションを開発しなくても 簡易なファイル転送ができます。サンプルアプリケーションの使用方法等についてはサンプルアプリ ケーションユーザーズマニュアルを参照してください。

(5)

4

1.2 『B-TALK』の特長

『B-TALK』には次のような特長があります。

互換性

全銀協 TCP/IP 手順に準拠していますので、対向装置も同手順をサポートしていればメーカー に関係なく通信できます。

② 全銀協 TCP/IP 手順のサポート機能

● 再送機能(ファイル単位) ● モード変更機能 ● マルチファイル転送機能 ● 圧縮機能 ● サブレイヤオプション仕様

③ API

アプリケーション作成が容易なAPI を提供しています。Windows メッセージを使用した非同期 インタフェースですので、アプリケーションの実行をブロックしません。また、端末起動シン グルファイル転送にのみ対応したDLL と全銀協 TCP/IP 手順にフルに対応した DLL の二つを 用意していますので、アプリケーション作成時の要求仕様によって使い分けていただくことが できます。(開発対応言語は Visual C++,Visual Basic です)

通信ライブラリ:全銀協TCP/IP 手順にフルに対応した DLL ファイル転送ライブラリ:端末起動シングルファイル転送対応DLL 通信アプリケーション:全銀協TCP/IP 手順の実行部

サンプルアプリケーション

付属のサンプルアプリケーションをお使いいただくことで、アプリケーションを開発すること なく簡易なファイル転送ができます。

その他の機能

● ファイル転送状況をプログレスバーで表示しますので、視覚的に確認できます。 ● トレースログ収集機能を持っています。動作状況,電文の内容等を記録/確認できます。 アプリケーション ファイル転送ライブラリ 通信ライブラリ 通信アプリケーション 関数コール 関数コール 関数コール Windows メッセージ Windows メッセージ

(6)

5

1.3 『B-TALK』の製品構成

(7)

6

1.4 通信形態

『B-TALK』には端末側(起動側)としての機能とセンター側(着信側)としての機能があります。ここ では『B-TALK』を端末側として使用した通信形態を示します。

① 加入電話網または ISDN 経由での通信

② LAN 経由での通信(パターン 1)

③ LAN 経由での通信(パターン 2)

加入電話網 または ISDN モデム B-TALK センター ルータ センター B-TALK LAN センター B-TALK LAN 加入電話網 または ISDN ルータ センター B-TALK LAN

(8)

7

1.5 ハードウェアの条件

『B-TALK』を使用するためには次のハードウェアの条件が必要になります。

項目 条件

PC PC-AT 互換パソコン

OS Windows 95、Windows 98、Windows NT、 Windows 2000、Windows XP

ハードディスク 3MByte 以上の空き容量が必要です メモリ 3MByte 以上が必要です

さらに、『B-TALK』を加入電話網および ISDN 等の WAN を使用して PPP 接続する場合はモデム またはTA が必要になります。また、LAN 上で使用する場合には LAN 接続用ネットワークカードが 必要になります。

弊社の ISDN ボード『DAC’SⅡ』をご使用になれば、ISDN 経由での通信が可能にな ります。

(9)

8

1.6 アプリケーション開発の条件

『B-TALK』を使用してアプリケーションを開発するには、次のソフトウェアが必要になります。

● Visual C++ Ver 4.0 以上、または Visual Basic Ver 4.0 以上の少なくともいずれか一方。 ● Visual Basic をお使いになる場合に限り、Windows メッセージをハンドリングできるカスタム

コントロール。 ※1 『B-TALK』はアプリケーションからの処理要求を実行したあとの結果,相手からの電文受信 およびその他の状態変化などをアプリケーションに通知するために Windows メッセージの WM_COPYDATA を使用しています。『B-TALK』ではこのメッセージをイベントメッセージ と呼びます。(イベントメッセージについては「3.6 イベントメッセージの概要」,「3.7 イベン トメッセージの詳細」を参照してください)

Visual Basic の標準のカスタムコントロールでは Windows メッセージをハンドリングできま せんので、『B-TALK』からのイベントメッセージを扱うことができません。Visual Basic を使 用してアプリケーションを開発するには、Windows メッセージをハンドリングできるカスタム コントロールが別途必要になります。 カスタムコントロールについてはお客様のご判断で任意にお選びいただいて結構で す。 ご参考までに … 弊社内での開発時に使用したカスタムコントロールは文化オリエ ント株式会社の Spy Works Pro 5.1J です。

ご使用になったカスタムコントロールによって生じた問題につきましては責任を負 いかねますので、ご了承ください。

コメント

(10)

9

1.7 インストール

FD には次のファイルが格納されています。 ¥ <App> FBAJ.exe FBAJ.ini <DLL> FBFT.dll FBIF.dll LogApi2.dll ProgBar.dll SRA.dll <SDK> FBAJ.bas FBFT.h FBFT.lib FBIF.h FBIF.lib セットアッププログラムは特に用意しておりませんのでお手数ですが、次の手順にしたがって FD からハードディスクにコピーしてください。

1) App ディレクトリにある FBAJ.exe ファイルを PATH 環境変数内にリストされている任意のデ ィレクトリにコピーしてください。

2) App ディレクトリにある FBAJ.ini ファイルを Windows ディレクトリにコピーしてください。

3) DLL ディレクトリにある各 DLL ファイルを次のどこかにコピーしてください。 z FBAJ.exe と同じディレクトリ z Windows のシステムディレクトリ z Windows ディレクトリ z PATH 環境変数内にリストされている別ディレクトリ 以上の手順で『B-TALK』のインストールは完了です。 ※ 1 SDK ディレクトリ内の FBAJ.bas,FBFT.h,FBIF.h は構造体定義、関数プロトタイプ定義等 です。アプリケーション作成時に参照してください。 ※ 2 モデムや TA を介してリモートのコンピュータと通信するためにはリモートアクセスサービス (RAS)のインストールと設定を行う必要があります。詳細は Windows のユーザーズマニュアル を参照してください。 B-TALK を使用するには LAN 接続でしか使用されない場合でもダイヤルアップネッ トワークがインストールされている必要があります。

注意!

(11)

10

1.8 ライセンス

『B-TALK』を正式にご使用いただくにはライセンス登録が必要になります。 ライセンス登録は、以下の流れになります。 1) 『B-TALK』を起動すると、製品情報・パスワード入力画面が表示されます。 2) 表示されている製品 ID を弊社窓口までご連絡下さい。 3) 折り返し、弊社よりパスワードをご連絡いたします。 4) 製品情報・パスワード入力画面にて、パスワードを入力し、OK ボタンを押下して下さい。 5) 正規のパスワードが入力されると、次回起動時から、製品情報・パスワード入力画面は、 表示されません。 ※ライセンスが発行されるまでの間は、以下の操作で、製品情報・パスワード入力画面を 閉じて下さい。 a) ENTER キー押下 b) ESC キー押下 c) マウスによるボタンクリック(どちらのボタンでも可) 尚、パスワード未入力の状態でも『B-TALK』は使用可能です。 パスワード発行窓口 NTT データカスタマサービス株式会社 ソリューション事業部 ソリューション営業部 TEL (03)3534-8906

(12)

11

2 環境設定

『B-TALK』は起動時に初期設定ファイル(FBAJ.ini)から各種の制御情報を読み込み、終了するま でこの情報にしたがって動作します。起動前に初期設定ファイルの中の制御情報を変更することで要 求条件に適した動作環境を実現できます。 本章ではこの初期設定ファイルについて説明します。

2.1 初期設定ファイルの内容

各制御情報の詳細は次の通りです。 また、初期設定ファイルがない時はデフォルト値で動作します。 制御情報(1/2) 分類 項目 説明 [( )内は有効範囲] デフォルト 値 出荷時の値 ポート番号 PortNO 全銀協TCP/IP 手順で使用する TCP/IP のポート番号。 5020 5020 SOCKET SOCKET 接続待ちタイ マー値 ComTime TCP コネクションを能動接続 する時の接続完了待ちタイマ ーの秒数。 (1~300) 30 30 パスワード変換種別 PWCvtID 通信制御電文のパスワードを EBCDIC に変換するかどうか の種別。 (0:変換しない,1:変換する) 1 1 ファイルアクセスキー 変換種別 FAKCvtID ファイル制御電文のファイル アクセスキーをEBCDIC に変 換するかどうかの種別。 (0:変換しない,1:変換する) 1 1 全銀手順 ブロック化種別 BlockID 送信するデータ電文を一つの レコードで構成する(ブロック 化しない)か複数のレコードで 構成する(ブロック化する)かの 種別(※1) 。 (0:ブロック化しない, 1:ブロック化する) 1 1 連続受信回数 MN 論理ACK 要求無しのデータ電 文を連続して受信できる回数 の最大値。 (0~15) 0 15 サブレイヤ 無通信監視タイマー値 IdleTime TCP コネクション接続後の無 通信監視タイマーの秒数。 (1~300) 30 30

(13)

12 制御情報(2/2) 分類 項目 説明 [( )内は有効範囲] デフォルト 値 出荷時の値 ファイル名 FileName 通信トレースログを書き出す ファイル名。 comtrace.txt comtrace.txt 総行数 LogSize ファイル内の最大行数。 (100~10000) 400 400 書き込み行数 LogLine 送受信電文またはイベントメ ッセージのイメージを書き込 む時の行数。 (1~110) 4 4 通信トレース ログ WriteBack キャッシュ WriteBack ディスクに毎回書き込むかど うかの種別。無効の時は毎回書 き込む。 (0:無効,1:有効) 1 1 収集可否フラグ Available アプリケーショントレースロ グの収集を行うかどうかの種 別。 (0:無効,1:有効) 1 1 ファイル名 FileName アプリケーショントレースロ グを書き出すファイル名。 aptrace.txt aptrace.txt 総行数 LogSize ファイルの最大行数。 (100~10000) 2000 2000 収集レベル LogLevel 収集の対象にする事象のレベ ル。指定されたレベル以下が収 集の対象。 (0:エラー/障害, 1:起動/終了/接続/切断, 2:警告, 3:メーカー解析用メッセージ) 2 2 アプリケーシ ョントレース ログ WriteBack キャッシュ WriteBack ディスクに毎回書き込むかど うかの種別。無効の時は毎回書 き込む。 (0:無効,1:有効) 0 0 ※ 1 全銀協 TCP/IP 手順ではテキスト長の最大値が 2048 バイトで、そこから TTC のサイズ分(5 バイト)を引いた 2043 バイトが実際に有効なデータ部分です。『B-TALK』ではこの 2043 バイ トの範囲でブロック化を行います。

(14)

13

2.2 初期設定ファイルの構成

初期設定ファイルは次のような構成になっています。 ;=== SOCKET === [Socket] ;「全銀協標準通信プロトコル-TCP/IP 手順-」で使用するポート番号(デフォルト値:5020) PortNO=5020 ;SOCKET 接続待ちタイマー値(デフォルト値:30 秒) ComTime=30 ;=== 全銀手順 === [Protocol] ;パスワード変換種別(デフォルト値:1(変換する)) PWCvtID=1 ;ファイルアクセスキー変換種別(デフォルト値:1(変換する)) FAKCvtID=1 ;ブロック化種別(デフォルト値:1(ブロック化する)) BlockID=1 : このように初期設定ファイルはsection と key で制御情報が識別できる構成になっています。 [section] key=文字列 : section と key は表の中の分類と項目に対応しています。

(15)

14

2.3 初期設定ファイルの更新方法

初期設定ファイルの更新はお手持ちのテキストエディタで行う方法と、アプリケーションから Win32API で行う方法があります。

① テキストエディタで更新する場合

文字列の部分を直接編集してください。その際、section と key は変更しないよう注意してくださ い。

② アプリケーションから更新する場合

Win32API の WritePrivateProfileString 関数を使用してください。 サンプルとして”SOCKET”の”SOCKET 接続待ちタイマー値”を変更する時のコーディングイメー ジを示します。 《Visual C++》

WritePrivateProfileString( “Socket”, “ComTime”, “60”, “FBAJ.ini” ) ;

《Visual Basic》

WritePrivateProfileString "Socket", "ComTime", “60”, “FBAJ.ini”

有効範囲を超えた値は設定しないでください。

(16)

15

3 アプリケーションプログラミング

『B-TALK』はアプリケーション作成に必要なライブラリおよびインタフェースを用意しています。 本章ではこれらアプリケーションプログラミングに必要な内容について説明します。

3.1 ライブラリの種類

『B-TALK』には二つのライブラリ(DLL)があります。 ● 通信ライブラリ(FBIF.dll) ● ファイル転送ライブラリ(FBFT.dll) 通信ライブラリは全銀協TCP/IP 手順にフルに対応した DLL で、通常のシングルファイル転送だ けでなく、再送,モード変更,マルチファイル転送等、全銀協TCP/IP 手順の機能をフルに使用した アプリケーションを作成するのに最適です。 それに対してファイル転送ライブラリは端末起動シングルファイル転送だけを行うような簡易な アプリケーションを作成するのに最適です。 各ライブラリの全銀協TCP/IP 手順におけるサポート機能は次の通りです。 機能 通信ライブラリ ファイル転送ライブラリ モード変更 ○ × データ圧縮 ○ ○ 可変長レコード × × マルチファイル転送 ○ × 再送(ファイル単位) ○ × 再送(テキスト単位) × × サブレイヤオプション仕様 ○ ○ ○:サポート ×:非サポート

(17)

16

3.2 アプリケーションとのインタフェース

各ライブラリを使用した場合のアプリケーションとのインタフェースは次のようになっています。

通信ライブラリを使用する場合

ファイル転送ライブラリを使用する場合

アプリケーション 通信ライブラリ 通信アプリケーション 関数コール Windows メッセージ(処理オーダー) Windows メッセージ(イベントメッセージ) アプリケーション ファイル転送ライブラリ 通信ライブラリ 通信アプリケーション 関数コール 関数コール Windows メッセージ(処理オーダー) Windows メッセージ(イベントメッセージ)

(18)

17

3.3 インタフェースの仕組み

アプリケーションがある処理要求(ダイヤルアップネットワークと TCP コネクションの接続や開局 要求電文の送信など)を行う場合は各ライブラリの提供する API 関数を呼び出します。各ライブラリ はその処理要求に応じた処理オーダーをWindows メッセージとして通信アプリケーションに通知し、 そこで実際に要求された処理が行われます。 処理が完了した場合や状態が変化した場合(接続の完了や開局回答電文の受信など)はその内容をイ ベントメッセージとしてWindows メッセージを使用してアプリケーションに通知します。 この二つのWindows メッセージにはともに WM_COPYDATA を使用しています。 通常の Windows メッセージは wParam,lParam の二つのデータを渡すことしかできませんが、 WM_COPYDATA は特殊な Windows メッセージで、lParam に COPYDATASTRUCT 構造体のアド レスを持つことにより、この構造体にリンクするメッセージ本体に大きなメモリ領域を持たせること ができます。 『B-TALK』ではこのメッセージ本体を処理オーダーおよびイベントメッセージとして使用してい ます。 ※1 WM_COPYDATA を送るには SendMessage 関数を使うため、受け手側はメッセージ内容の処理 が終わって参照の必要が無くなった時点でReplyMessage 関数を呼び出すようにします。こうす る こ と で 、 送 り 手 側 の ス レ ッ ド と 受 け 手 側 の ス レ ッ ド と も に 処 理 を 続 行 で き ま す 。 WM_COPYDATA,SendMessage 関数,ReplyMessage 関数の詳細については Win32API プロ グラマーズリファレンス等を参照してください。

(19)

18

3.4 API 関数の概要

各ライブラリの提供するAPI 関数の機能の概要は次の通りです。

通信ライブラリ

関数名 機能概要 FBOpenService 通信アプリケーションを起動し、初期化を行う。 FBCloseService 通信アプリケーションを終了させる。 FBOpenLine 自側の端末からダイヤルアップネットワークとTCP コネクションの接続 を行う。この関数を呼び出すことにより、自側が起動側として全銀協 TCP/IP 手順を実行する。 FBAcceptLine 相手側の端末からダイヤルアップネットワークとTCP コネクションの接 続が行われるまで待機する。この関数を呼び出すことにより、自側が着信 側として全銀協TCP/IP 手順を実行する。 FBCloseLine ダイヤルアップネットワークとTCP コネクションの切断を行う。 FBOpenSession 自側が起動側の場合は相手へ開局要求電文を送信する。 自側が着信側の場合は相手へ開局回答電文を送信する。 FBCloseSession 自側が起動側の場合は相手へ閉局要求電文を送信する。 自側が着信側の場合は相手へ閉局回答電文を送信する。 FBChangeMode 自側が起動側の場合は相手へモード変更要求電文を送信する。 自側が着信側の場合は相手へモード変更回答電文を送信する。 FBStartFile 自側が起動側の場合は相手へ開始要求電文を送信する。 自側が着信側の場合は相手へ開始回答電文を送信する。 FBRestartFile 自側がファイル受信側の時は再送要求電文を送信する。 自側がファイル送信側の時は指定されたファイルを再送する。 FBGetMsgNo 入力されたイベントメッセージからメッセージ番号と結果コードを返却 する。(Visual Basic でアプリケーションを作成する時には必須) FBGetSessionInfo 入力されたイベントメッセージから通信制御電文の内容を返却する。 (Visual Basic でアプリケーションを作成する時には必須) FBGetFileInfo 入力されたイベントメッセージからファイル制御電文の内容を返却する。 (Visual Basic でアプリケーションを作成する時には必須)

ファイル転送ライブラリ

関数名 関数の機能説明 Initialize 通信ライブラリのFBOpenService 関数を呼び出して、通信アプリケーシ ョンの起動と初期化を行う。 Terminate 通信ライブラリのFBCloseService 関数を呼び出して、通信アプリケーシ ョンの終了処理を行い通信アプリケーションを終了させる。 Request シングルファイル転送の一括実行を受け付ける。 Response ファイル転送ライブラリの状態と通信終了時にアプリケーションに送信 したMsgClosedLine のメッセージヘッダの結果コードと通信制御電文, ファイル制御電文の処理結果を返却する。 DispMsg イベントメッセージを受け取り、状態に応じて FBOpenSession 関数, FBStartFile 関数,FBCloseSession 関数,FBCloseLine 関数を呼び出す。

(20)

19

3.5 API 関数の詳細

各ライブラリの提供するAPI 関数の機能の詳細は次の通りです。

通信ライブラリ

● FBOpenService 関数

【形式】 《Visual C++》

BOOL FBOpenService( HWND hwnd, LPSTR pComName )

《Visual Basic》

Declare Function FBOpenService Lib “FBIF.DLL” (ByVal hwnd As Long, ByVal _ pComName As String) As Long

【機能】 この関数は通信アプリケーションを起動し、初期化を行います。 【引数】 hwnd アプリケーションのウィンドウハンドル pComName 通信アプリケーション識別文字列 通信アプリケーションを識別する NULL で終わる文字列を指すポインタです。 この文字列にはアプリケーションごとにユニークな最大8 文字の文字列を設定 してください。 【戻り値】 プロセスの起動と初期化処理が成功した場合はTRUE を返します。それ以外の場合は FALSE を返 します。 【備考】 この関数は通信アプリケーションを使用するに先立って最初に実行する必要があります。 通信アプリケーションの起動と初期化が終了した後に制御を戻します。

(21)

20

● FBCloseService 関数

【形式】 《Visual C++》 BOOL FBCloseService( ) 《Visual Basic》

Declare Function FBCloseService Lib “FBIF.DLL” ( ) As Long

【機能】 この関数は通信アプリケーションの終了処理を行い、通信アプリケーションを終了させます。 【引数】 無し 【戻り値】 終了処理とプロセス終了が成功した場合はTRUE を返します。それ以外の場合は FALSE を返しま す。 【備考】 この関数はアプリケーションが終了する前に必ず実行する必要があります。 通信アプリケーションを終了させた後に制御を戻します。

(22)

21

● FBOpenLine 関数

【形式】

《Visual C++》

BOOL FBOpenLine( LPSTR pIPAddr, BOOL bDialUp, LPSTR pDialUpEntry, LPSTR pDialNumber, LPSTR pUserName, LPSTR pPassWord ) 《Visual Basic》

Declare Function FBOpenLine Lib “FBIF.DLL” (ByVal pIPAddr As String, ByVal bDialUp _ As Long, ByVal pDialUpEntry As String, ByVal pDialNumber As String, ByVal _

pUserName As String, ByVal pPassWord As String) As Long 【機能】 この関数は相手側へのダイヤルアップネットワークと TCP コネクション接続を通信アプリケーシ ョンに指示します。この関数を呼び出すことにより自側が全銀協TCP/IP 手順の起動側として動作 します。 ダイヤルアップネットワークを使用する場合は最初にダイヤルアップネットワークの接続後、TCP コネクションの接続を行います。ダイヤルアップネットワークを使用しない場合は直ちに TCP コ ネクションの接続を行います。 【引数】 pIPAddr 接続先相手のIP アドレス “.”を含むアドレス表記を示す NULL で終わる文字列を指すポインタです。 (例) “192.168.0.1” bDialUp ダイヤルアップネットワークの接続指定 TRUE(0 以外):ダイヤルアップネットワークの接続を指定する。 FALSE(0) :ダイヤルアップネットワークの接続を指定しない。 pDialUpEntry ダイヤルアップネットワークで電話帳に登録されたエントリ名 電話帳のエントリ名を示すNULL で終わる文字列を指すポインタです。 pDialNumber 相手の電話番号 電話番号を示すNULL で終わる文字列を指すポインタです。 pUserName 相手の認証を受ける時のユーザー名 ユーザー名を示すNULL で終わる文字列を指すポインタです。 pPassWord 相手の認証を受ける時のパスワード パスワードを示すNULL で終わる文字列を指すポインタです。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。 pDialNumber,pUserName,pPassWord のパラメータは電話帳のエントリの値を使用する場合 はNULL を設定してください。電話帳のエントリの値と違う値にしたい場合に設定してください。

(23)

22

● FBAcceptLine 関数

【形式】

《Visual C++》

BOOL FBAcceptLine( BOOL bDialUp ) 《Visual Basic》

Declare Function FBAcceptLine Lib “FBIF.DLL” (ByVal bDialUp As Long) As Long

【機能】 この関数は相手側の端末からダイヤルアップネットワークと TCP コネクションの接続が行われる まで待機することを通信アプリケーションに指示します。この関数を呼び出すことにより自側が全 銀協TCP/IP 手順の着信側として動作します。 【引数】 bDialUp ダイヤルアップネットワーク経由での使用指定(※1) TRUE(0 以外):ダイヤルアップネットワーク経由での着信を指定する。 FALSE(0) :ダイヤルアップネットワーク経由での着信を指定しない。 ※1 実際の処理では使用していないのでどちらを指定しても同じです。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。

(24)

23

● FBCloseLine 関数

【形式】 《Visual C++》 BOOL FBCloseLine( ) 《Visual Basic》

Declare Function FBCloseLine Lib “FBIF.DLL” ( ) As Long

【機能】 この関数はダイヤルアップネットワークと TCP コネクションの切断を通信アプリケーションに指 示します。 【引数】 無し 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。

(25)

24

● FBOpenSession 関数

【形式】

《Visual C++》

BOOL FBOpenSession( SessionInfo *psSessionInfo ) 《Visual Basic》

Declare Function FBOpenSession Lib “FBIF.DLL” (psSessionInfo As SessionInfo) As Long

【機能】 この関数は自側が起動側の場合は相手への開局要求電文の送信を通信アプリケーションに指示し ます。また、自側が着信側の場合は相手からの開局要求電文に対して開局回答電文の送信を通信ア プリケーションに指示します。 【引数】 psSessionInfo 通信制御電文のデータ項目 開局要求電文または開局回答電文のデータ項目を設定した構造体を指すポイン タです。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。 通信制御電文のデータ項目の構造体と設定すべき項目に関しては「4.5 電文別設定データ」を参照 してください。

(26)

25

● FBCloseSession 関数

【形式】

《Visual C++》

BOOL FBCloseSession( SessionInfo *psSessionInfo ) 《Visual Basic》

Declare Function FBCloseSession Lib “FBIF.DLL” (psSessionInfo As SessionInfo) As Long

【機能】 この関数は自側が起動側の場合は相手への閉局要求電文の送信を通信アプリケーションに指示し ます。また、自側が着信側の場合は相手からの閉局要求電文に対して閉局回答電文の送信を通信ア プリケーションに指示します。 【引数】 psSessionInfo 通信制御電文のデータ項目 閉局要求電文または閉局回答電文のデータ項目を設定した構造体を指すポイン タです。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。 通信制御電文のデータ項目の構造体と設定すべき項目に関しては「4.5 電文別設定データ」を参照 してください。

(27)

26

● FBChangeMode 関数

【形式】

《Visual C++》

BOOL FBChangeMode( SessionInfo *psSessionInfo ) 《Visual Basic》

Declare Function FBChangeMode Lib “FBIF.DLL” (psSessionInfo As SessionInfo) As Long

【機能】 この関数は自側が起動側の場合は相手へのモード変更要求電文の送信を通信アプリケーションに 指示します。また、自側が着信側の場合は相手からのモード変更要求電文に対してモード変更回答 電文の送信を通信アプリケーションに指示します。 【引数】 psSessionInfo 通信制御電文のデータ項目 モード変更要求電文またはモード変更回答電文のデータ項目を設定した構造体 を指すポインタです。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。 通信制御電文のデータ項目の構造体と設定すべき項目に関しては「4.5 電文別設定データ」を参照 してください。

(28)

27

● FBStartFile 関数

【形式】

《Visual C++》

BOOL FBStartFile( FileInfo *psFileInfo, LPSTR *pPathName ) 《Visual Basic》

Declare Function FBStartFile Lib “FBIF.DLL” (psFileInfo As FileInfo, ByVal pPathName _ As String) As Long 【機能】 この関数は自側が起動側の場合は相手への開始要求電文の送信を通信アプリケーションに指示し ます。このあと、ファイルの送受信~終了要求電文/終了回答電文の送受信まで、または”ファイル なし”の時の開始回答電文受信までを自動的に実行します。 自側が着信側の場合は相手からの開始要求に対して開始回答電文の送信を通信アプリケーション に指示します。このあと、ファイルの送受信~終了要求電文/終了回答電文の送受信までを自動的 に実行します。 【引数】 psFileInfo ファイル制御電文のデータ項目 開始要求電文または開始回答電文のデータ項目を設定した構造体を指すポイン タです。 pPathName 送受信ファイル名 送信時のデータが格納されているファイル名、または受信時のデータを格納す べきファイル名を示す NULL で終わる文字列を指すポインタです。(パス名を 含んでいてもかまいません) 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。 ファイル制御電文のデータ項目の構造体と設定すべき項目に関しては「4.5 電文別設定データ」を 参照してください。

(29)

28

● FBRestartFile 関数

【形式】

《Visual C++》

BOOL FBRestartFile( FileInfo *psFileInfo, LPSTR *pPathName ) 《Visual Basic》

Declare Function FBRestartFile Lib “FBIF.DLL” (psFileInfo As FileInfo, ByVal _ pPathName As String) As Long

【機能】 この関数は自側が起動側で連絡モードまたは着信側で照会モードの場合は相手からの再送要求電 文に対して再送ファイルの送信~終了要求電文/終了回答電文の送受信までを自動的に実行するよ う通信アプリケーションに指示します。 自側が起動側で照会モードまたは着信側で連絡モードの場合は相手への再送要求電文の送信を通 信アプリケーションに指示します。このあと、ファイルの受信~終了要求電文の受信および終了回 答電文の送信までを自動的に実行します。 【引数】 psFileInfo ファイル制御電文のデータ項目 再送要求電文のデータ項目を設定した構造体を指すポインタです。 pPathName 再送信ファイル名 再送のためのデータが格納されているファイル名を示すNULL で終わる文字列 を指すポインタです。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は要求を通信アプリケーションに渡した後に制御を戻します。結果はイベントメッセージ で通知されます。 ファイル制御電文のデータ項目の構造体と設定すべき項目に関しては「4.5 電文別設定データ」を 参照してください。

(30)

29

● FBGetMsgNo 関数

【形式】

《Visual C++》

BOOL FBGetMsgNo( LPSTR lParam, DWORD *pdwMsgNo, DWORD *pdwResult ) 《Visual Basic》

Declare Function FBGetMsgNo Lib “FBIF.DLL” (ByVal lParam As Long, pdwMsgNo As _ Long, pdwResult As Long) As Long

【機能】 この関数は通信アプリケーションから通知されたイベントメッセージからメッセージ番号および 結果コードを取り出します。 【引数】 lParam イベントメッセージ イベントメッセージの情報を含むCOPYDATASTRUCT 構造体を指すポインタ です。 pdwMsgNo メッセージ番号 イベントメッセージのメッセージ番号を指すポインタです。 pdwResult 結果コード イベントメッセージの結果コードを指すポインタです。 【戻り値】 イベントメッセージからメッセージ番号と結果コードの取得が成功した場合はTRUE を返します。 それ以外の場合はFALSE を返します。 【備考】 この関数はイベントメッセージからメッセージ番号と結果コードを取得した後に制御を戻します。

(31)

30

● FBGetSessionInfo 関数

【形式】

《Visual C++》

BOOL FBGetSessionInfo( LPARAM lParam, SessionInfo *psSessionInfo ) 《Visual Basic》

Declare Function FBGetSessionInfo Lib “FBIF.DLL” (ByVal lParam As Long, _ psSessionInfo As SessionInfo) As Long

【機能】 この関数は通信アプリケーションから通知されたイベントメッセージから通信制御電文のデータ 項目を取り出します。 【引数】 lParam イベントメッセージ イベントメッセージの情報を含むCOPYDATASTRUCT 構造体を指すポインタ です。 psSessionInfo 通信制御電文のデータ項目 開局要求電文,開局回答電文,閉局要求電文,閉局回答電文,モード変更要求 電文またはモード変更回答電文のデータ項目を設定した構造体を指すポインタ です。 【戻り値】 イベントメッセージから通信制御電文のデータ項目の取得が成功した場合は TRUE を返します。 それ以外の場合はFALSE を返します。 【備考】 この関数はイベントメッセージから通信制御電文のデータ項目を取得した後に制御を戻します。 通信制御電文のデータ項目の構造体に関しては「4.5 電文別設定データ」を参照してください。

(32)

31

● FBGetFileInfo 関数

【形式】

《Visual C++》

BOOL FBGetFileInfo( LPARAM lParam, FileInfo *psFileInfo ) 《Visual Basic》

Declare Function FBGetFileInfo Lib “FBIF.DLL” (ByVal lParam As Long, psFileInfo _ As FileInfo) As Long 【機能】 この関数は通信アプリケーションから通知されたイベントメッセージからファイル制御電文のデ ータ項目を取り出します。 【引数】 lParam イベントメッセージ イベントメッセージの情報を含むCOPYDATASTRUCT 構造体を指すポインタ です。 psFileInfo ファイル制御電文のデータ項目 開始要求電文,開始回答電文または終了回答電文のデータ項目を設定した構造 体を指すポインタです。 【戻り値】 イベントメッセージからファイル制御電文のデータ項目の取得が成功した場合は TRUE を返しま す。それ以外の場合はFALSE を返します。 【備考】 この関数はイベントメッセージからファイル制御電文のデータ項目を取得した後に制御を戻しま す。 ファイル制御電文のデータ項目の構造体に関しては「4.5 電文別設定データ」を参照してください。

(33)

32

② ファイル転送ライブラリ

● Initialize 関数

【形式】

《Visual C++》

BOOL Initialize( HWND hWnd, LPSTR pComName ) 《Visual Basic》

Declare Function Initialize Lib “FBFT.DLL” ( ByVal hWnd As Long, ByVal pComName _ As String ) As Long 【機能】 この関数は通信ライブラリのFBOpenService 関数を呼び出して、通信アプリケーションの起動と 初期化を行います。 【引数】 hwnd アプリケーションのウィンドウハンドル pComName 通信アプリケーション識別文字列 通信アプリケーションを識別する NULL で終わる文字列を指すポインタです。 この文字列にはアプリケーションごとにユニークな最大8 文字の文字列を設定 してください。 【戻り値】 プロセスの起動と初期化処理が成功した場合はTRUE を返します。それ以外の場合は FALSE を返 します。 【備考】 この関数は通信アプリケーションを使用するに先立って最初に実行する必要があります。 通信アプリケーションの起動と初期化が終了した後に制御を戻します。

(34)

33

● Terminate 関数

【形式】 《Visual C++》 BOOL Terminate( ) 《Visual Basic》

Declare Function Terminate Lib “FBFT.DLL” ( ) As Long

【機能】 この関数は通信ライブラリのFBCloseService 関数を呼び出して、通信アプリケーションの終了処 理を行い通信アプリケーションを終了させます。 【引数】 無し 【戻り値】 終了処理とプロセス終了が成功した場合はTRUE を返します。それ以外の場合は FALSE を返しま す。 【備考】 この関数はアプリケーションが終了する前に必ず実行する必要があります。 通信アプリケーションを終了させた後に制御を戻します。

(35)

34

● Request 関数

【形式】

《Visual C++》

BOOL Request( LPSTR pParmFile ) 《Visual Basic》

Declare Function Request Lib “FBFT.DLL” ( ByVal pParmFile As String ) As Long

【機能】

この関数は通信ライブラリの FBOpenLine 関数,FBOpenSession 関数,FBStartFile 関数, FBCloseSession 関数,FBCloseLine 関数を呼び出して行うダイヤルアップネットワーク/TCP コ ネクション接続,開局要求,開始要求,テキスト送受信,終了要求/回答,閉局要求,ダイヤルア ップネットワーク/TCP コネクション切断処理に対する一括実行を受け付けます。最初の FBOpenLine 関数は本関数起動時に呼び出し、FBOpenSession 関数以降はアプリケーションがイ ベントを受信したことを DispMsg 関数で通知するのを契機として呼び出します。各関数で必要な パラメータはファイル形式で受け取ります。 【引数】 pParmFile パラメータファイル名 各関数を呼び出す時に必要なパラメータが格納されているファイル名を示す NULL で終わる文字列を指すポインタです。ファイル形式はバイナリファイル でファイルサイズは固定長です。パラメータ内容を次表に示します。 項目名称 バイト数 属性 内容 1 接続先 IP アドレス 15 キャラクタ ‘.’区切りの IP アドレス 2 ダイヤルアップネットワ ークの接続指定 1 キャラクタ ‘0’:ダイヤルアップネットワークを使用する ‘1’:ダイヤルアップネット ワークを使用しない 3 ダイヤルアップでのエン トリ名 31 キャラクタ 4 相手の電話番号 31 キャラクタ ‘-’区切りの電話番号 5 相手の認証を受ける時の ユーザー名 31 キャラクタ 6 相手の認証を受ける時の パスワード 31 キャラクタ 7 相手センター確認コード 7 バイナリ 8 当方センター確認コード 7 バイナリ 9 パスワード 6 キャラクタ 10 アプリケーション ID 1 キャラクタ ‘0’固定 11 モード 1 キャラクタ ‘0’:連絡 ‘1’:照会 12 ファイル名 12 キャラクタ 13 ファイルアクセスキー 6 キャラクタ 14 レコード ID 1 キャラクタ ‘0’:固定長 ‘1’:可変長 (‘0’固定) 15 レコード長 4 バイナリ 1~2043 16 データ圧縮 ID 1 キャラクタ ‘0’:圧縮無し ‘1’:圧縮有り 17 送受信ファイル名 70 キャラクタ

(36)

35 ※ 1 属性がキャラクタのパラメータの空きエリアにはスペースを設定してください。 ※ 2 相手センター確認コードと当方センター確認コードは全桁設定してください。 ※ 3 レコード長は下位のバイトから順に詰めてください。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数はFBOpenLine 関数から戻ってきた時に制御を戻します。 パラメータファイルの中の ② 接続先IP アドレス ③ ダイヤルアップでのエントリ名 ④ 相手の電話番号 ⑤ 相手の認証を受ける時のユーザー名 ⑥ 相手の認証を受ける時のパスワード ⑦ 送受信ファイル名 は、空きエリアとしてスペースで埋められた部分を削除して通信アプリケーションに渡します。こ れとは逆に ⑧ パスワード ⑨ ファイル名 ⑩ ファイルアクセスキー は、パラメータ内容をすべて引き継げるようにするために、スペースを削除しないでそのまま通信 アプリケーションに渡します。

(37)

36

● Response 関数

【形式】

《Visual C++》

BOOL Response( DWORD *pdwComSts, DWORD *pdwResCode, DWORD *pdwResult ) 《Visual Basic》

Declare Function Response Lib “FBFT.DLL” ( pdwComSts As Long, pdwResCode As _ Long, pdwResult As Long ) As Long

【機能】 こ の 関 数 は フ ァ イ ル 転 送 ラ イ ブ ラ リ の 状 態 と 通 信 完 了 時 に ア プ リ ケ ー シ ョ ン に 送 信 し た MsgClosedLine のメッセージヘッダの結果コードと電文の処理結果を返します。 【引数】 pdwComSts 通信状態 通信アプリケーションの状態を指すポインタです。 0:通信完了 1:通信中 pdwResCode 結果コード 通信完了時のMsgClosedLine の結果コードを指すポインタです。内容について は「6 エラー時の原因と対処」を参照してください。(通信状態が”通信中”の時 は無効値(FFFFFFFF(16))を返します) pdwResult 処理結果 通信制御電文,ファイル制御電文の処理結果の値をユニークに定義し直した16 進値を指すポインタです。内容を以下に示します。(通信状態が”通信中”の時は 無効値(FFFFFFFF(16))を返します)

(38)

37 処理結果 内容 00(16) 正常 10(16) 通信制御電文区分エラー 11(16) 相手センター確認コードエラー 12(16) 当方センター確認コードエラー 13(16) サービス時間帯エラー 14(16) パスワードエラー 15(16) アプリケーションID エラー 16(16) モードエラー 17(16) モード変更不可 20(16) ファイル制御電文区分エラー 21(16) ファイル名エラー 22(16) ファイルアクセスキーエラー 23(16) テキスト数エラー 24(16) レコード数エラー 25(16) レコード長エラー 26(16) 二重ファイル伝送 27(16) ファイルなし 28(16) レコードID エラー 29(16) データ圧縮ID エラー 99(16) 通信制御電文でのその他エラー A9(16) ファイル制御電文でのその他エラー FFFFFFFF(16) 無効値 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は通信状態を取得した後に制御を戻します。Request 関数が呼び出されダイヤルアップネ ットワーク/TCP コネクション切断が完了するまでは”通信中”を返し、それ以外の時は”通信完了” を返します。

(39)

38

● DispMsg 関数

【形式】

《Visual C++》

BOOL DispMsg( LPARAM lParam ) 《Visual Basic》

Declare Function DispMsg Lib “FBFT.DLL” ( ByVal lParam As Long ) As Long

【機能】

この関数は通信アプリケーションから通知されたイベントメッセージを受け取り、状態に応じて通 信ライブラリの FBOpenSession 関数,FBStartFile 関数,FBCloseSession 関数,FBCloseLine 関数を呼び出します。 【引数】 lParam イベントメッセージ イベントメッセージの情報を含むCOPYDATASTRUCT 構造体を指すポインタ です。 【戻り値】 要求が受け付けられた場合はTRUE を返します。それ以外の場合は FALSE を返します。 【備考】 この関数は各関数から戻ってきた時に制御を戻します。

(40)

39

3.6 電文別設定データ

通 信 ラ イ ブ ラ リ の API 関 数 の 中 で 、 電 文 の 送 信 を 指 示 す る 関 数 (FBOpenSession 関 数 , FBCloseSession 関数,FBChangeMode 関数,FBStartFile 関数,FBRestartFile 関数)を呼ぶ時に 設定する必要のある項目は次の通りです。

(○:設定要,-:設定不要)

通信制御電文のデータ項目

関数 FBOpenSession FBCloseSession FBChangeMode 電文 開局要求 開局回答 閉局要求 閉局回答 モード 変更要求 モード 変更回答 電文区分 - - - - - - 処理結果 - ○ - ○ - ○ 相手センター確認 コード ○ ○ ○ ○ ○ ○ 当方センター確認 コード ○ ○ ○ ○ ○ ○ 通信年月日時分秒 - - - - - - パスワード ○ ○ ○ ○ ○ ○ アプリケーション ID ○ ○ ○ ○ ○ ○ モード ○ ○ ○ ○ ○ ○ 拡張用エリア ○ ○ ○ ○ ○ ○

ファイル制御電文のデータ項目

関数 FBStartFile FBRestartFile 電文 開始要求 開始回答 再送要求 電文区分 - - - 処理結果 - ○ - ファイル名 ○ ○ ○ ファイルアクセス キー ○ ○ ○ テキスト数 - - - レコード数 - - - レコードID ○ ○ ○ レコード長 ○ ○ ○ 再送指定区分 - - ○ データ圧縮ID ○ ○ ○ 拡張用エリア ○ ○ ○ ※ 1 レコード ID は固定長(‘0’)を設定してください。 ※ 2 レコード長は 1~2043 の範囲で設定してください。 ※ 3 再送指定区分は全ファイル再送(From=01,To=全ビットオン)を設定してください。

(41)

40 各制御電文のデータ項目のメモリ構成は次の通りです。( [ ]内の数値はバイト数です)

通信制御電文のデータ項目

7 6 5 4 3 2 1 0 電文区分 [1] 0 処理結果 [1] 1 相手センター確認コード[7] 2 3 4 5 6 7 8 パディング [1] 9 当方センター確認コード [7] 10 11 12 13 14 15 16 パディング [1] 17 通信年月日時分秒 [6] 18 19 20 21 22 23 パディング [1] 24 パスワード [6] 25 26 27 28 29 30 パディング [1] 31 アプリケーションID [1] 32 モード [1] 33 拡張用エリア [34] 34 : : 67 パディング [4] 68 69 70 71 ● Visual C++での構造体 typedef struct { BYTE byMsgID ; // 電文区分 BYTE byResult ; // 処理結果 BYTE byPeerCode[7] ; // 相手センタ確認コード BYTE byDummy1 ; // パディング BYTE byMyCode[7] ; // 当方センタ確認コード BYTE byDummy2 ; // パディング BYTE byDateTime[6] ; // 通信年月日時分秒 BYTE byDummy3 ; // パディング BYTE byPassword[6] ; // パスワード BYTE byDummy4 ; // パディング BYTE byAppID ; // アプリケーション ID BYTE byMode ; // モード BYTE byExtArea[34] ; // 拡張エリア BYTE byDummy5 ; // パディング BYTE byPad1 ; // パディング WORD wPad2 ; // パディング } SessionInfo; ● Visual Basic での構造体 Type SessionInfo byMsgID As Byte byResult As Byte byPeerCode(7) As Byte byMyCode(7) As Byte byDateTime(6) As Byte byPassword(6) As Byte byAppID As Byte byMode As Byte byExtArea(34) As Byte byPad1 As Byte wPad2 As Integer End Type

(42)

41

ファイル制御電文のデータ項目

7 6 5 4 3 2 1 0 電文区分 [1] 0 処理結果 [1] 1 ファイル名 [12] 2 3 4 5 6 7 8 9 10 11 12 13 パディング [1] 14 ファイルアクセスキー [6] 15 16 17 18 19 20 パディング [1] 21 テキスト数 [2] 22 23 レコード数 [4] 24 25 26 27 レコードID [1] 28 パディング [1] 29 レコード長 [2] 30 31 再送指定区分(From) [2] 32 33 再送指定区分(To) [2] 34 35 データ圧縮ID [1] 36 拡張用エリア [32] 37 : : 68 パディング [3] 69 70 71 ● Visual C++での構造体 typedef struct { BYTE byMsgID ; // 電文区分 BYTE byResult ; // 処理結果 BYTE byFileName[12] ; // ファイル名 BYTE byDummy1 ; // パディング BYTE byFileAccKey[6] ; // ファイルアクセスキー BYTE byDummy2 ; // パディング WORD wNumOfText ; // テキスト数 DWORD dwNumOfRecord ; // レコード数 BYTE byRecordID ; // レコード ID BYTE byPad1 ; // パディング WORD wRecordLen ; // レコード長

WORD wRetryFrom ; // 再送指定区分(From) WORD wRetryTo ; // 再送指定区分(To) BYTE byCompressID ; // データ圧縮 ID BYTE byExtArea[32] ; // 拡張用エリア BYTE byDummy3 ; // パディング WORD wPad2 ; // パディング } FileInfo; ● Visual Basic での構造体 Type FileInfo byMsgID As Byte byResult As Byte byFileName(12) As Byte byFileAccKey(6) As Byte wNumOfText As Integer dwNumOfRecord As Long byRecordID As Byte byPad1 As Byte wRecordLen As Integer wRetryFrom As Integer wRetryTo As Integer byCompressID As Byte byExtArea(31) As Byte wPad2 As Integer End Type

(43)

42

3.7 イベントメッセージの概要

イベントメッセージは Windows メッセージの中の WM_COPYDATA を使って通知します。 WM_COPYDATA の時の wParam と lParam は

wParam = (WPARAM)(HWND)hwndFrom; // 送り手側のウィンドウのハンドル lParam = (LPARAM)(PCOPYDATASTRUCT)pcds; // COPYDATASTRUCT 構造体へのポインタ

となっています。lParam が指している COPYDATASTRUCT 構造体の内容は次のようになっていま す。

typedef struct tagCOPYDATASTRUCT {

DWORD dwData; // イベントメッセージ番号 DWORD cbData; // イベントメッセージのバイト長 PVOID lpData; // イベントメッセージを指すポインタ } COPYDATASTRUCT; COPYDATASTRUCT 構造体のメンバ lpData が指しているイベントメッセージはメッセージヘッ ダとそれに続くメッセージデータから構成されています。 メッセージヘッダ メッセージデータ メッセージヘッダの内容は次のようになっています。 typedef struct { // メッセージヘッダ構造体 DWORD dwMsgNo ; // メッセージ番号 DWORD dwMsgLen ; // メッセージのバイト長 DWORD dwResult ; // 結果コード DWORD dwReserved ; // リザーブ領域 } MsgHeader ;

dwMsgNo と COPYDATASTRUCT の dwData、および dwMsgLen と COPYDATASTRUCT の cbData は同じ値です。

(44)

43

回線制御系メッセージ

typedef struct { // 回線制御構造体 MsgHeader Header ; // メッセージヘッダ BYTE byIPAddr[16] ; // IP アドレス BOOL bDialUp ; // ダイアルアップネットワーク指示フラグ BYTE byDialUpEntry[32] ;// ダイアルアップネットワーク電話帳のエントリ名 BYTE byDialNumber[32] ;// 電話番号 BYTE byUserName[32] ; // ユーザー名 BYTE byPassWord[32] ; // パスワード } MsgLineInfo ;

通信制御系メッセージ

typedef struct { // 通信制御構造体 MsgHeader Header ; // メッセージヘッダ BYTE byMsgID ; // 電文区分 BYTE byResult ; // 処理結果 BYTE byPeerCode[7] ; // 相手センタ確認コード BYTE byDummy1 ; // パディング BYTE byMyCode[7] ; // 当方センタ確認コード BYTE byDummy2 ; // パディング BYTE byDateTime[6] ; // 通信年月日時分秒 BYTE byDummy3 ; // パディング BYTE byPassword[6] ; // パスワード BYTE byDummy4 ; // パディング BYTE byAppID ; // アプリケーション ID BYTE byMode ; // モード BYTE byExtArea[34] ; // 拡張エリア BYTE byDummy5 ; // パディング BYTE byPad1 ; // パディング WORD wPad2 ; // パディング } MsgSessionInfo ;

(45)

44

ファイル制御系メッセージ

typedef struct { // ファイル制御構造体 MsgHeader Header ; // メッセージヘッダ BYTE byMsgID ; // 電文区分 BYTE byResult ; // 処理結果 BYTE byFileName[12] ; // ファイル名 BYTE byDummy1 ; // パディング BYTE byFileAccKey[6] ; // ファイルアクセスキー BYTE byDummy2 ; // パディング WORD wNumOfText ; // テキスト数 DWORD dwNumOfRecord ; // レコード数 BYTE byRecordID ; // レコード ID BYTE byPad1 ; // パディング WORD wRecordLen ; // レコード長 WORD wRetryFrom ; // 再送指定区分 WORD wRetryTo ; // 再送指定区分 BYTE byCompressID ; // データ圧縮 ID BYTE byExtArea[32] ; // 拡張用エリア BYTE byDummy3 ; // パディング WORD wPad2 ; // パディング BYTE byPathName[128] ; // 送受信ファイル名 } MsgFileInfo ;

(46)

45 各制御系メッセージには次のようなイベントメッセージがあります。 メッセージ分類 メッセージ名 意味 MsgOpenedLine FBOpenLine 関数を呼び出して接続完了待ち状態にあ る時に、その接続処理が完了したことを表す。 MsgAcceptedLine FBAcceptLine 関数を呼び出して着信待ち状態にある 時に、その着信処理が完了したことを表す。 回線制御系 メッセージ MsgClosedLine FBCloseLine 関数を呼び出して切断完了待ち状態にあ る時に、その切断処理が完了したことを表す。 MsgOpenSession 起動側の場合はこのメッセージは使用しない。 着信側の場合は相手からの開局要求電文を受信したこ とを表す。 MsgOpenedSession 起動側の場合は相手から開局回答電文を受信し、開局待 ち状態が完了したことを表す。 着信側の場合は相手へ開局回答電文を送信し、開局待ち 状態が完了したことを表す。 MsgCloseSession 起動側の場合はこのメッセージは使用しない。 着信側の場合は相手からの閉局要求電文を受信したこ とを表す。 MsgClosedSession 起動側の場合は相手から閉局回答電文を受信し、閉局待 ち状態が完了したことを表す。 着信側の場合は相手へ閉局回答電文を送信し、閉局待ち 状態が完了したことを表す。 MsgChangeMode 起動側の場合はこのメッセージは使用しない。 着信側の場合は相手からのモード変更要求電文を受信 したことを表す。 通信制御系 メッセージ MsgChangedMode 起動側の場合は相手からモード変更回答電文を受信し、 モード変更待ち状態が完了したことを表す。 着信側の場合は相手へモード変更回答電文を送信し、モ ード変更待ち状態が完了したことを表す。 MsgStartFile 起動側の場合はこのメッセージは使用しない。 着信側の場合は相手からの開始要求電文を受信したこ とを表す。 MsgTermedFile 起動側の場合は相手から開始回答電文(ファイルなし) を受信、または終了要求/終了回答電文を送受信し、フ ァイル転送状態が完了したことを表す。 着信側の場合は相手へ開始回答電文(ファイルなし)を 送信し、または終了要求/終了回答電文を送受信し、フ ァイル転送状態が完了したことを表す。 ファイル制御系 メッセージ MsgRestartFile ファイル送信側の場合は相手からの再送要求電文を受 信したことを表す。 ファイル受信側の場合はこのメッセージは使用しない。

(47)

46

3.8 イベントメッセージの詳細

各イベントメッセージの詳細は次の通りです。

回線制御系メッセージ

● MsgOpenedLine メッセージ

【意味】 FBOpenLine 関数を呼び出して接続完了待ち状態にある時に、その接続処理が完了したことを表し ます。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 0 メッセージのバイト長 dwMsgLen 164(10) [A4(16)] 結果コード dwResult 0 IP アドレス byIPAddr FBOpenLine 関数で指定された値 ダイヤルアップネットワ ーク指示フラグ byDialUp FBOpenLine 関数で指定された値 エントリ名 byDialUpEntry FBOpenLine 関数で指定された値 電話番号 byDialNumber FBOpenLine 関数で指定された値 ユーザー名 byUserName FBOpenLine 関数で指定された値 パスワード byPassWord FBOpenLine 関数で指定された値 【備考】 なし

(48)

47

● MsgAcceptedLine メッセージ

【意味】 FBAcceptLine 関数を呼び出して着信待ち状態にある時に、その着信処理が完了したことを表しま す。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 1 メッセージのバイト長 dwMsgLen 164(10) [A4(16)] 結果コード dwResult 0 IP アドレス byIPAddr 0 ダイヤルアップネットワ ーク指示フラグ byDialUp 0 エントリ名 byDialUpEntry 0 電話番号 byDialNumber 0 ユーザー名 byUserName 0 パスワード byPassWord 0 【備考】 なし

(49)

48

● MsgClosedLine メッセージ

【意味】 FBCloseLine 関数を呼び出して切断完了待ち状態にある時に、その切断処理が完了したこと、また は通信中に異常が発生して切断処理を実行し、その切断処理が完了したことを表します。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 2 メッセージのバイト長 dwMsgLen 164(10) [A4(16)] 結果コード dwResult 切断原因を示す値 IP アドレス byIPAddr 起動側の場合は FBOpenLine 関数 で指定された値 着信側の場合は0 ダイヤルアップネットワ ーク指示フラグ byDialUp 起動側の場合は FBOpenLine 関数 で指定された値 着信側の場合は0 エントリ名 byDialUpEntry 起動側の場合は FBOpenLine 関数 で指定された値 着信側の場合は0 電話番号 byDialNumber 起動側の場合は FBOpenLine 関数 で指定された値 着信側の場合は0 ユーザー名 byUserName 起動側の場合は FBOpenLine 関数 で指定された値 着信側の場合は0 パスワード byPassWord 起動側の場合は FBOpenLine 関数 で指定された値 着信側の場合は0 ※ 切断原因については「5 エラー時の原因と対処」を参照してください。 【備考】 なし

(50)

49

② 通信制御系メッセージ

● MsgOpenSession メッセージ

【意味】 起動側の場合はこのメッセージは使用しません。 着信側の場合は相手からの開局要求電文を受信したことを表します。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 3 メッセージのバイト長 dwMsgLen 88(10) [58(16)] 結果コード dwResult 0 電文区分 byMsgID 受信電文の値 処理結果 byResult 受信電文の値 相手センター確認コード byPeerCode 受信電文の値 当方センター確認コード byMyCode 受信電文の値 通信年月日時分秒 byDateTime 受信電文の値 パスワード byPassword 受信電文の値 アプリケーションID byAppID 受信電文の値 モード byMode 受信電文の値 拡張用エリア byExtArea 受信電文の値 【備考】 なし

(51)

50

● MsgOpenedSession メッセージ

【意味】 起動側の場合は相手から開局回答電文を受信し、開局待ち状態が完了したことを表します。 着信側の場合は相手へ開局回答電文を送信し、開局待ち状態が完了したことを表します。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 4 メッセージのバイト長 dwMsgLen 88(10) [58(16)] 結果コード dwResult 0 電文区分 byMsgID 送受信電文の値 処理結果 byResult 送受信電文の値 相手センター確認コード byPeerCode 送受信電文の値 当方センター確認コード byMyCode 送受信電文の値 通信年月日時分秒 byDateTime 送受信電文の値 パスワード byPassword 送受信電文の値 アプリケーションID byAppID 送受信電文の値 モード byMode 送受信電文の値 拡張用エリア byExtArea 送受信電文の値 【備考】 なし

(52)

51

● MsgCloseSession メッセージ

【意味】 起動側の場合はこのメッセージは使用しません。 着信側の場合は相手からの閉局要求電文を受信したことを表します。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 5 メッセージのバイト長 dwMsgLen 88(10) [58(16)] 結果コード dwResult 0 電文区分 byMsgID 受信電文の値 処理結果 byResult 受信電文の値 相手センター確認コード byPeerCode 受信電文の値 当方センター確認コード byMyCode 受信電文の値 通信年月日時分秒 byDateTime 受信電文の値 パスワード byPassword 受信電文の値 アプリケーションID byAppID 受信電文の値 モード byMode 受信電文の値 拡張用エリア byExtArea 受信電文の値 【備考】 なし

(53)

52

● MsgClosedSession メッセージ

【意味】 起動側の場合は相手から閉局回答電文を受信し、閉局待ち状態が完了したことを表します。 着信側の場合は相手へ閉局回答電文を送信し、閉局待ち状態が完了したことを表します。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 6 メッセージのバイト長 dwMsgLen 88(10) [58(16)] 結果コード dwResult 0 電文区分 byMsgID 送受信電文の値 処理結果 byResult 送受信電文の値 相手センター確認コード byPeerCode 送受信電文の値 当方センター確認コード byMyCode 送受信電文の値 通信年月日時分秒 byDateTime 送受信電文の値 パスワード byPassword 送受信電文の値 アプリケーションID byAppID 送受信電文の値 モード byMode 送受信電文の値 拡張用エリア byExtArea 送受信電文の値 【備考】 なし

(54)

53

● MsgChangeMode メッセージ

【意味】 起動側の場合はこのメッセージは使用しません。 着信側の場合は相手からのモード変更要求電文を受信したことを表します。 【内容】 項目 メンバ名 値( [ ]内は 16 進値) メッセージ番号 dwMsgNo 7 メッセージのバイト長 dwMsgLen 88(10) [58(16)] 結果コード dwResult 0 電文区分 byMsgID 受信電文の値 処理結果 byResult 受信電文の値 相手センター確認コード byPeerCode 受信電文の値 当方センター確認コード byMyCode 受信電文の値 通信年月日時分秒 byDateTime 受信電文の値 パスワード byPassword 受信電文の値 アプリケーションID byAppID 受信電文の値 モード byMode 受信電文の値 拡張用エリア byExtArea 受信電文の値 【備考】 なし

参照

関連したドキュメント

 映画「Time Sick」は主人公の高校生ら が、子どものころに比べ、時間があっという間

Photo Library キャンパスの秋 ひと 人 ひと 私たちの先生 経済学部  岡田敏裕ゼミ SKY SEMINAR 社会学部准教授 鈴木謙介 Campus News

春学期入学式 4月1日、2日 履修指導 4月3日、4日 春学期授業開始 4月6日 春学期定期試験・中間試験 7月17日~30日 春学期追試験 8月4日、5日

住所」 「氏名」 「電話番号(連絡 先)」等を明記の上、関西学院 大学教務部生涯学習課「 KG 梅田ゼミ」係(〒662‐8501西 宮 市 上ケ原 一 番 町 1 - 1 5

 英語の関学の伝統を継承するのが「子どもと英 語」です。初等教育における英語教育に対応でき

NXH160T120L2Q1 Split T-Type NPC Inverter Q1 NXH25T120L2Q1 3 Channel T-Type NPC Inverter Q1 NXH40T120L3Q1 3 Channel T-Type NPC Inverter Q1 NXH160T120L2Q2F2S1 Split T-Type NPC Inverter

6号炉及び7号炉 中央制御室 非常用ディーゼル発電機 GTG ※2

6号及び7号炉 中央制御室 非常用ディーゼル発電機 GTG ※2