TodayScreenAPI

2017/12/08

 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の扱いが悪すぎるような…

*1:Firefoxの拡張の一つ、これでExciteを使ってプログラム系の文章を翻訳すると、ほどほどましな文章が出てきます