PocketPCのToday画面に月齢を表示させたい!ということで、Today Screen APIに着手。まったく、何やってるんでしょうね(^_^;
Today Screen APIについては、まったくと言っていいほど情報がありません。tdLaunchなどがオープンソースなので、それを参考にすればいいという掲示板の投稿はありましたが…。見ては見たものの、どれがどう関連しているのか、せめて少しでもドキュメントがあればな…。
というところで、海外のページを含めて検索すると、やっと少しだけデータが引っかかります。わたしもたいしたことは全然やってないつもりでいたんですが…。いつの間にか英語のページの参照率がずいぶん上がったなぁ…。
おかげさまで、少しではありますが英語が読めるようになってきました。相変わらずポップアップ翻訳*1などは手放せませんが、それでもこれと本文を比較しながら読むことで、ようやく意味がわかるようになりました。まだ一部怪しいですけど。わたしも成長したなぁ…。
そういえば、友達が「英検4級くらい受けられるんじゃない?」と言ってきます。彼は英語が全く読めない(ごくごく簡単な英単語もちょっと怪しいくらい)ので、そこから見るとかなりすごいようには見えるのかもしれませんが…。
でも、少しは通用するんだろうか?今度の機会に、ちょっと調てみようっと…。
今回の参考サイト
- 英語MSDN Today Screen APIのページ(タイトル通り英語MSDNです。基本的な関数やメッセージのリストが載ってます)
- Windows Phone Home Page(こっちは日本語です。情報としては新しいみたい)
- Pocket PC toolsnakkaさんのページ。
- PocketPC PagePocketPCアプリケーションのサンプルあり(英語)
しかし、tdClockのソースも見てみたのですが、WM_CREATEとWM_TIMERに
GetLocalTime(&systim);
SetTimer(hWnd, ID_CLOCK_TIMER, (systim.wSecond % 10) * 1000, NULL);
という記述があるのですね。毎回WM_TIMERがくるごとに、タイマーを作り直しているというのはわかるのですが、不可解なのが(systim.wSecond % 10) * 1000
という記述。秒の一桁目の秒数後にタイマーを発生させてるということでいいのでしょうが、ならばなぜこんな面倒なことをしているのでしょう?
残念ながらこれは、XP Homeでは使えないようです(プロジェクトを開こうとするとエラーがでるようになってしまいました)。こんなことにHomeを使う人はいないのでしょうが、それでもせめてもうちょっと、何とかしてほしいです(/_;)。あまりにもHomeの扱いが悪すぎるような…