CSubLocalSendを使い倒してみようと思う

厳達さんが主宰されてるCli Cli Clieというサイトがあります。
現在は殆ど更新されていませんが(ご本人は最近別のBlogで活動中)、NS Basic使いには役に立つ情報が満載なので、今でもお世話になっています。


さて、このサイトで公開されているCSubLocalSendという便利なツールがあります。

これはこのサイトで公開されているNS Basicから呼び出すC言語で書かれたサブルーチンの中のひとつで、これを使うと容易にPIM系DBにデータの登録ができるという優れもの。

実は製作者は厳達さんではなく、AppShelfやKeyQuick、TrainTimeなどでお馴染みの今関さんです。

僕も以前「年休君」を作るにあたって、このCSubLocalSendを利用させていただいたのですが、現在作成しているアプリでToDoデータの登録をしなければならず、再びCSubLocalSend利用する事になりました。
ToDoのDB(Tasksではない)の構造は比較的簡単なので、NS Basic単体でも基本的には不可能ではないのですが、期日付のデータを登録するには少し面倒なんですね。
しかも、CSubLocalSendを使うと、NS Basicでは触ることが許されていないPIMのカテゴリについても実行時にユーザが指定することが出来るので好都合です。

そんな訳で久々にCSubLocalSendの解説を見たのですが…

ToDoデータの登録方法の解説が無い!?

そうです。メモ帳、予定表、アドレス帳への登録方法は載っているのにToDoの登録方法についての解説がありません。
もしかしてサポート外なのかな?と思いながら色々と調べてみると、ソースファイルがあります。
解決の糸口はここしかないだろうと早速ソースをダウンロードして開いてみました。

びっくりしたのは予想以上に単純なソースだった事。
これで判ったのは、このプログラム、赤外線通信用のExgSendというAPIを用いてPIMへのデータ登録をしていたんですね。
他のデバイス赤外線通信でPIMデータのやり取りをする代わりに、自分自身にデータを送信していたわけです(これでCSubLocalSendという名前の由来がわかりました)。

さて、赤外線通信の機能を使っているのであれば、ToDoのデータだって登録できないはずがありません。
ここからはネット検索フル回転で情報を収集です。

CSubLocalSendに渡すデータ形式VCARDという携帯やPDAでの通信で標準的に使われているものなのですが、どうやらToDoに関してはVCALENDARというフォーマットを使っているようだという事が判りました。
と言う事で、VCALENDARフォーマットでデータを作成しToDoDB向けにデータを送るテストプログラムを作ってみたところ、見事データを登録する事が出来ました。

これで現在作成中のアプリの肝となるデータ登録部については検証完了です。
完成すれば、きっと僕の仕事のよきパートナーとなることでしょう。
今度、暇を見つけてPPL向けにCSubLocalSendの技術資料をまとめないといけないですね。

と言うわけで、次回作もお堅いアプリとなりそうです。
たまにはゲームを作りたいなぁ。