Today plugin開発に関する情報やTIPSなど
id:ujipさんのagressiveな開発に刺激され、Today pluginを作ってます。DLLに特定のexportを書いて、いくつかのmessageを処理すればいいっぽい。まずはSDKのサンプルをベースに作る方向で。
なお、Today pluginの作成にはid:TakamiChieさんのサイトが大変役に立ちました。この場を借りてお礼申し上げます。
今日はPocketPCのTodayプラグインを作ってみました。日付に加えて、現在の月齢を表示するだけという簡単なものですが、資料が少なくて大変でした(__;)
月齢表示付き「日付」 - 高見知英のかいはつにっし
いくつか気になった点とか
DllMain()はinstall直後には呼ばれないの?
Cabファイルによるinstallが完了しても、DllMain()は呼ばれてないようなんですが・・・。InitializeCustomItem()も呼ばれてないっぽい感じ。SDKのSampleも同様なんだけど、何か間違えてるのかなあ。RegistryのEnabledは0にしといた方がいいのかしらん。
WM_TODAYCUSTOM_QUERYREFRESHCACHE
SDKのdocumentを読むと、2秒ごとにコールされるとある。再描画が必要かどうかshellに教えるということだな。よくあるWM_TIMERは必要ないみたい。
ManufacurerとProductName
Buildするとsetupの認識するアプリ名はManufacurer+ProductNameになるようだ。Manufacurerは省略したいんだけど、空だととbuild時エラーになる。そこで邪道だけど、Manufacurerにアプリ名、ProductNameにバージョン情報を入れるといい感じ。とりあえずsetupは問題ないみたい。
[3/12 追記]
Program Files\{ProductName}にアプリがインストールされるので、上記方法はあまりよくない。素直にManufacturer+ProductNameを指定した方がよい。
それにしてもWindows Mobile Programmingは情報が少ない
まあWindowsとは開発者の数が全然違うので、単純に比較はできないんだけど、やはり情報の少なさにはちょっと不満があります。
そんなわけで私のしょぼいアプリ群でもどんどん公開していくことが大事なのかな、と思った。(ちょっと恥ずかしいけど)特別な事情がない限り積極的にソースも公開していきたい。微力でも誰かの役に立てたら嬉しいってyasuhoは思うから。
GBAやNDSなどの開発は日本ではマイノリティだけど、開発してる人たちのバイタリティはすごい。そこには「情報がないから」じゃなくて「分からなかったら調べろ。ウダウダ言う前にコードを書け」という感じの文化が根付いている(ぼくは先人の努力を利用してるだけのヘタレだけど)それに比べればWindows Mobileが出来ないはずはない、ってのは誇張してるかな。
なお、今回のアプリについては物がDLLなのでメモリリークや安定性を高めてから公開します。なんかもったいつけてるけど、ほんとしょぼいアプリだから、期待しないでね(笑)
[4/28 タイトルを変更]