2002年10月23日
_ DOS/V Magazine。
ちっちゃなソフトの収録だけだったのに、ちゃんと雑誌を献本していただいた。ってことで、早速中を見てみた。CD-ROM onlyの収録かと思ったら、ひとことだけどアイコン付きで紹介文が載ってたのが嬉しい。
・・・。
とはいえ、根本的な疑問なんだけど。最近この手の雑誌のソフト紹介って活用されてるのかねぇ?昔、インターネットに繋ぐ環境が整ってなかった頃は、雑誌についてるフリーソフトはありがたいものだったんだけど。ベクターから出てた、10枚組みCD-ROMがついてるようなソフトウェア集は重宝したなぁ(遠ヒ目)
2006年10月23日
_ [WM5][W-ZERO3] caltβテストに募集された方で…。
まだ、私からのメールを受け取っていない方はいらっしゃいますか?
こちらからは漏れなく送信させてもらったツモリなのですが、 何かの手違いでメールが届いていなかったらいやだなぁ、と思いまして。 たまーに、infoで始まるメールは全てスパムメール扱いにしていて、 私からのメールを拒否る人がいましてね。 気になったので、一応にっき上で聞いてみました。
もしメールを受け取ってない方がいらっしゃいましたら、お手数ですが再度ご連絡いただければと思います。
以上、業務報告でしたm(_ _)m
あ、募集は引き続き行っておりますよ!
_ [WM5] pim.volのデータベースを直接参照する。
caltでは、pim.volのデータベースを直接参照して予定情報を取得しています。 具体的にはEDBというデータベースエンジン(?)のAPIを使って、以下のようにソースを書いています。
CEGUID guid; CeMountDBVolEx(&guid, _T("pim.vol"), NULL, OPEN_EXISTING);
で、データベースをマウントして、
HANDLE session = CeCreateSession(&guid);
で、セッションを作成して
SORTORDERSPECEX sos; ZeroMemory(&sos, sizeof(SORTORDERSPECEX)); sos.wVersion = SORTORDERSPECEX_VERSION; sos.wNumProps = 1; sos.wKeyFlags = 0; sos.rgPropID[0] = 0x10420040; //開始時間 sos.rgdwFlags[0] = 0;
で、ソートキーを指定して
CEOID ceoid; HANDLE hdb = CeOpenDatabaseInSession(&session, &guid, &ceoid, _T("Appointments Database"), &sos, 0, NULL);
で、データベースを開いて、
CEPROPID prgPropID[] = { 0x10420040, //開始時間 0x0020001f //件名 }; WORD wNum = 2; //取得するプロパティ数 CEPROPVAL *lpPropVal; DWORD cbBuffer = 0; HANDLE hHeap = HeapCreate(HEAP_GENERATE_EXCEPTIONS, 2048, 0); CEOID ceoid = CeReadRecordPropsEx(&hdb, CEDB_ALLOWREALLOC, &wNum, prgPropID, (LPBYTE *)&lpPropVal, &cbBuffer, hHeap);
で、プロパティを取得します。
あ、ヒープの開放やハンドルの開放などなどの後始末はココに書いてませんので、 これをこのまんま使わないでくださいね。 メモリリークしまくってしまいます。 caltで使っている(後始末をちゃんとしている)ソースが見たい人は、websvnにでもアクセスしてみてください。 今の最新ほやほやのソースが見られますので。
で、ここからが本題。
予定データをEDBでアクセスするには、プロパティIDというもの(上記ソース上、0x10420040とか書かれてたヤツ)が必要です。IDそれ自身はCeGetDatabasePropsというAPIで取得できるのですが、それぞれのIDの意味が全然わかりません。 手探りで調べてみて、解析できたのが以下の通り。
0x10000066( 0):ULONG ID(?) 0x200f0012( 1):USHORT 修正回数 0x001e0064( 2):stream 0x0028000b( 3):BOOL アラーム 0x0029001f( 4):文字 0x00460013( 5):ULONG アラームの時間 0x002a0013( 6):ULONG 0x10400013( 7):ULONG 開始時間から終了時間までの差(分) 0x0041001f( 8):文字 場所 0x203f0064( 9):stream 0x0022000b(10):BOOL 繰返し予定 0x10420040(11):日付 開始時間 0x0044000b(12):BOOL 終日予定 0x00450013(13):ULONG 予定の公開方法(0〜3) 0x00210013(14):ULONG 秘密度(0〜3) 0x0020001f(15):文字 件名 0x0061000b(16):BOOL 0x00480041(17):BLOB 0x205f0064(18):stream 0x00500013(19):ULONG 0x0051001f(20):文字 0x00530040(21):日付 0x00470041(22):BLOB 0x00520040(23):日付 作成時間 0x10430040(24):日付 0x001b0013(25):ULONG
まぁ、備忘録ということで解析結果のメモを残しておきます。 続きを解析してやろうとかいう酔狂な方がいれば、手持ちのデータは提供しますですよ。(って上記内容でほぼ打ち止めですけどorz)
_ 藤代千尋 [DOS/V Magazine 見るだけは見てみました。あの顔半分。いい味ですねぇ。(^^;)]
_ 藤代千尋 [私もソフト紹介の雑誌を前は買ってました。重宝もしていました。が、もう買ってませんねぇ。ソフト1つひとつの扱いも小さか..]