jornada 720が調子悪くなってからしばらくQMAIL3をCEでちゃんとは使っていなかったのですが、Sigmarion IIIで使ってみたところいくつか問題が発覚しました。また描画周りの遅さはPCで使っているとほとんど感じることがないので、実際にCEで使ってみないと気づきませんね。ということでいくつか修正しました。
ほかにも、PCだとオンラインモードでプレビューを使っていることがほとんどなのですが、CEではオフラインでプレビューは隠して使っているので、その辺の使い勝手もいくつか良くしました。
ついでに、Sigmarion IIIだと普通のフォントだと細すぎて見づらいので、太字にできるようにしました。やはり、自分で日常的に使っていないとだめですね。
やはり文字は小さいです。今のところQMAILでは、12ポイント(16ドット)の太字にしていますが、それでも少し小さい感じ。しかも、それくらいのフォントにしてしまうと画面上の情報量が今までとあまり変わらないような気も。。それでも縦方向が長いので多少は多くなりますけど。
しかし、部屋の中でも直射日光の下でも液晶がちゃんと見えるのはいいですね。jornadaは外にでると見づらくてしょうがなかったですから。ドットが細かいせいもあって液晶はかなり綺麗にみえます。映り込みは激しいですけど。
CABからインストールするときに既存のフォルダにインストールしたい場合には、そのフォルダを選択してからファイル名のところに「(ここにセットアップする)」と指定するとそのフォルダにインストールできます。
英語版だと確か「(Install Here)」とかなのですが、日本語版はいまいちちゃんと覚えられずにいつも指定しまちがって変な名前のフォルダができてしまいます^^;。
Sigmarion IIIのIEでこのサイトをみると、携帯モードになってしまうのでUserAgentを変えてみました。HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User AgentのPlatformのところをWindows NTにしてみたところ通常のモードで表示されるようになりました。ただ、PNGが表示できないのでなんだか寂しい画面にになってしまいますね。
ちなみにデフォルトでは、「Mozilla/4.0 (compatible MSIE 5.5; Windows CE; sigmarion3」でした。いくつか登録して簡単に切り替えられるようなアプリとかがあると良いかもしれませんね。
以前書いたX-QMAIL-Identityの話ですが、ひとまずX-QMAIL-SubAccountを使うように変更したコードをマージしました。テンプレートなども修正されていますのでご注意ください。
どうやらSDカードのドライバがダメダメなようで、一回電源を落とすとそれ以前に開いていたファイルのハンドルが全部無効になってしまうようです。GetLastError()で調べると、'The device has been removed.'だそうで。。CFを使った場合には問題ないのでやはりドライバがダメなんでしょうね。。
QMAILの場合、メッセージボックスのファイルのハンドルは基本的には握りっぱなしなのでかなり辛いですね。どうしたもんでしょう。
ちなみに、こんなプログラムでテストするとわかります。最初のメッセージボックスが出たタイミングで電源を切って、電源を入れなおしてからSDカードを認識するまでしばらく待ってからメッセージボックスのOKボタンを押します。
#include <windows.h> #include <tchar.h> //const TCHAR* TESTPATH = _T("\\test.txt"); const TCHAR* TESTPATH = _T("\\SD メモリ カード\\test.txt"); //const TCHAR* TESTPATH = _T("\\メモリ カード\\test.txt"); int WINAPI WinMain(HINSTANCE, HINSTANCE, LPTSTR, int) { HANDLE hFile = ::CreateFile(TESTPATH, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); if (hFile != INVALID_HANDLE_VALUE) { ::MessageBox(0, _T("SDTest"), _T("SDTest"), MB_OK); int n = 0; DWORD dwWritten = 0; if (::WriteFile(hFile, &n, sizeof(n), &dwWritten, 0)) { ::MessageBox(0, _T("Success"), _T("SDTest"), MB_OK); } else { TCHAR tsz[32]; ::wsprintf(tsz, _T("Fail: %d"), ::GetLastError()); ::MessageBox(0, tsz, _T("SDTest"), MB_OK); } ::CloseHandle(hFile); } return 0; }