Mobile Agent V42r42リリースができました

最新モジュールはこちらからダウンロードできます。


修正製品は以下になります。
■Pocket PC(検証用含)
■RW-300
■Telios(検証用含)
■RZ-N155S(検証用含)
■RZ-156(検証用含)
■RZ-1501/1502/1502A検証用
■KT-1/BT-1(PREA)(検証用含)
■GT-1(PREA)(検証用含)
■CT-2(PREA)(検証用含)
■Pocket@iEX(検証用含)
■ToughPro(検証用含)
■TouchiBiz(検証用含)
■DT-5200
■MultiPad(検証用含)
■TBR-6500

                                                                                                                                  • -

本リリースで修正した内容

(n)・・・リリース内の連番
対象機種・・・修正対象の機種。省略時は全機種
モジュール・・・修正対象のモジュール。省略時はlcm41.exe
現象または改善・・・修正内容

                                                                                                                                  • -
        • V42r42で修正した内容 -----

(1)
現象:処理式実行中に(ユーザ操作のタイミングにより)画面の再描画が
発生することがあったが、同時に処理しないように制御するようにした。
処理式でDB関連の関数を実行中に、DBと連結したコントロールを再描画すると
エージェントが内部で保持しているDB管理テーブルが破損し、
DBの内容を正しく表示できなかったり、DB本体を破損する危険性があった。

        • V42r41で修正した内容 -----

(1)
現象:d_exit関数で終了すると、$Finalでメッセージボックスを表示しても
そこで入力待ちにならず、強制終了してしまう

(2)
対象機種:GT-1/CT-2
改善:MSRStart関数の引数追加
(下記<エラー情報1>、<エラー情報2>)

【機能】MSRデバイスの読み取りを開始する
(読み取るたびに処理ブロックを実行する)

【関数の書式】
<戻り値> = LocalFunc ("MSRStart", <デバイス名>, <フォーム名>, <処理ブロック名>,
<データ長>, <タイムアウト>, [&<エラー情報1>], [&<エラー情報2>]);
<戻り値>:0 = 正常、0以外 = エラー
<デバイス名>:"MSR1:"などのデバイス名(各メーカの仕様による)
<フォーム名>:処理ブロックがあるフォーム名、省略時は共通処理式
<処理ブロック名>:処理ブロック名
<データ長>:MSRドキュメントの各メーカの読み取りデータ仕様参照
<タイムアウト>:読み込み時のタイムアウト値(秒単位で0〜99)
<エラー情報1>:エラーの原因に応じて下記のエラーコードを返す
0・・・正常
1・・・指定された<フォーム名>が存在しない
2・・・指定された<処理ブロック名>が存在しない
3・・・すでに読み取りスレッドが起動されている(MSRStart関数を二重に実行した)
4・・・<デバイス名>に対するCreateFileがエラーを返した
5・・・MSRFirstFzがエラーを返した
6・・・CreateThread(読み込み用スレッドの作成)がエラーを返した
<エラー情報2>:<エラー情報1>が4、5、6の場合、直後のGetLastErrorの戻り値を返す

(3)
対象機種:RZ-1501/1502/1502A
改善:BthLookupDevice関数の実装

【機能】Bluetoothバイスを検索する

【関数の書式】
<戻り値> = LocalFunc ("BthLookupDevice", [<タイムアウト>],
&<デバイス数>, &<中断理由>, &<エラーコード>);
<戻り値>:0 = 正常またはタイムアウトによる中断、0以外 = エラー
<タイムアウト>:検索時のタイムアウト値(秒単位)
0を指定された場合、省略された場合はタイムアウトしない
<デバイス数>:発見されたデバイスの数を返す(整数型変数)
<中断理由>:検索が中断された場合、その理由を返す(整数型変数)
0 = 正常に検索完了
1 = WindowsCE APIのWSALookupServiceBegin関数でエラーが発生した
2 = WindowsCE APIのWSALookupServiceNext関数でエラーが発生した
3 = 検索処理中にタイムアウト時間が経過した
<エラーコード>:WindowsCE APIでエラーが発生した場合、その直後に
WSAGetLastError関数を実行して、その戻り値を返す(整数型変数)
※本関数を実行して<戻り値>が0のときには、エージェント内部の
ワークエリアに検索されたデバイスの名前とアドレスを保存し、
その個数を<デバイス数>に返します。
<戻り値>が0以外のときにはデバイスの情報は保存していません。
バイスの名前は最大16バイトまで保存しています。
※エージェント内部で実行しているWindowsCE APIがブロックしている間に
タイムアウト時間が経過した場合、BthLookupDevice関数が制御を戻す
までには設定されたタイムアウト時間より長くかかることがあります。
(エージェントはAPIが制御を戻してからタイムアウトを検出するため)
※検索するデバイスの数は最大16までとします。
16個目のデバイスを検出すると、その時点で検索を打ち切り、
BthLookupDevice関数は正常に復帰します。
その場合呼び出し元のアプリケーション側では、デバイスがちょうど16個
存在したのか、17個以上存在しているのか区別する方法はありません。

(4)
対象機種:RZ-1501/1502/1502A
改善:BthGetParams関数の実装

【機能】検索したBluetoothバイスの名前とアドレスを取得する

【関数の書式】
<戻り値> = LocalFunc ("BthGetParams", <デバイス番号>, &<デバイス名>,
&<アドレス>);
<戻り値>:0 = 正常、0以外 = エラー
<デバイス番号>:BthLookupDevice関数で検索したデバイスの番号(整数)
0≦ <デバイス番号> ≦ <デバイス数> - 1
<デバイス名>:検索されたBluetoothバイスの名前を返す(文字型変数)
<アドレス>:デバイスBluetoothアドレスを返す(文字型変数)
※本関数はBthLookupDevice関数によって検索された結果を取り出します。
※<デバイス名>に指定した文字型変数の長さが実際に検索されたデバイス
名前の有効長より大きい場合、超過部分は書き換えられません。
仮に検索されたデバイスの名前の有効長が0ならば文字型変数は
呼び出し時の状態のままで返されます。

(5)
対象機種:Pocket@iEX/ToughPro/TouchBiz
改善:LC Bridgeサーバに対応するクライアント側機能を追加
※ル・クローン ブリッジ 専用API説明書参照

        • V42r40で修正した内容 -----

(1)
現象:ftp機能が使用できなくなっていた。(r37/r38/r39のみ)

(2)
現象:$Unload処理ブロックが他の処理ブロック実行中に実行されない。

(3)
改善:ImmSetConversionStatus関数をWindowsCE全機種に実装した。

(4)
改善:GetPlatformID関数の戻り値として「3202 Prea GT-1」を追加

        • V42r39で修正した内容 -----

(1)
対象機種:CT-2
現象:$OnMSR実行中に他のイベント処理ブロックが実行されてしまう。

(2)
対象機種:CT-2
現象:$OnMSR処理ブロック内でテキストボックスに代入すると内容が正しく表示されない。

(3)
現象:編集中のテキストボックスに値を代入すると「致命的なアプリケーションエラー」
というメッセージが表示される。
(エージェント内の不正なメモリ参照が原因で、OSがシステムエラーを表示している)

(4)
改善:RegFlushKey関数(レジストリの保存)を追加。

(5)
改善:GetPlatformID関数の戻り値を追加

<戻り値>:下記の通り(それ以外の機種は-1を返す)
1101 HPC2000
1102 PocketPC
1103 PocketPC2002
2101 RZ-A150/RZ-N150S
3101 Prea CT-2
1201 PocketPC2003
1202 PocketPC2003SE
2201 RW-E300
2202 RZ-N155S
2203 RZ-N156
2204 RZ-N1501/1502/1502A
3201 Prea KT-1/BT-1
4201 ToughPro
4202 Pocket@iEX
4203 TouchBiz
5201 DT-5200
6201 Wipcom1000
7201 MultiPad