Spb Mobile Shellはdummy phone.dllを使うことで電話の発信ができるようになりますが、着信履歴を表示することはできません。 (ちなみに Pointui Home2は dummy phone.dllだけで着信履歴も表示可能でした)
Spb Mobile Shellは発着信履歴を clog.dbから直接読んでいるのだろうと考えて、直接着信履歴書き込むプログラムを作ってみました。
clog.dbの構造は一部わからないところもあるのですが、エミュレータ(Professioanl版)では正しく動いてくれました。
Classic版には clog.dbが無いので、自分で作ることにします。
#define COLUMN_1 MAKELONG(CEVT_I2 , 1) // ? 1固定? #define COLUMN_STARTTTIME MAKELONG(CEVT_FILETIME , 2) // 開始時刻 #define COLUMN_ENDTIME MAKELONG(CEVT_FILETIME , 3) // 終了時刻 #define COLUMN_CALLTYPE MAKELONG(CEVT_I4 , 4) // 4=不在着信, 5=発信, 6=着信, 7=拒否 // 5は? #define COLUMN_PHONENUMBER MAKELONG(CEVT_LPWSTR , 6) // 番号 #define COLUMN_DISPNAME MAKELONG(CEVT_LPWSTR , 7) // 表示名 // 8は? #define COLUMN_7 MAKELONG(CEVT_I4 , 9) // ? 0固定? #define COLUMN_PHONETYPE MAKELONG(CEVT_LPWSTR , 10) // 番号区分(文字列) #define COLUMN_8 MAKELONG(102 , 4096) // ? 本当は CEVT_AUTO_I4, 4096 static CEOID CreateClogDB(PCEGUID pGuid) { CEDBASEINFOEX dbInfo = {0}; CEPROPSPEC dbProp[9] = {0}; dbInfo.wVersion = 2; //dbInfo.wNumSortOrder = 2; dbInfo.wNumSortOrder = 0; dbInfo.dwFlags = CEDB_VALIDCREATE; wcscpy(dbInfo.szDbaseName, _T("clog.db")); dbProp[0].wVersion = 1; dbProp[0].propid = COLUMN_1; dbProp[0].dwFlags = NULL; dbProp[1].wVersion = 1; dbProp[1].propid = COLUMN_STARTTTIME; dbProp[1].dwFlags = NULL; dbProp[2].wVersion = 1; dbProp[2].propid = COLUMN_ENDTIME; dbProp[2].dwFlags = NULL; dbProp[3].wVersion = 1; dbProp[3].propid = COLUMN_CALLTYPE; dbProp[3].dwFlags = NULL; dbProp[4].wVersion = 1; dbProp[4].propid = COLUMN_PHONENUMBER; dbProp[4].dwFlags = NULL; dbProp[5].wVersion = 1; dbProp[5].propid = COLUMN_DISPNAME; dbProp[5].dwFlags = NULL; dbProp[6].wVersion = 1; dbProp[6].propid = COLUMN_7; dbProp[6].dwFlags = NULL; dbProp[7].wVersion = 1; dbProp[7].propid = COLUMN_PHONETYPE; dbProp[7].dwFlags = NULL; dbProp[8].wVersion = 1; dbProp[8].propid = COLUMN_8; dbProp[8].dwFlags = NULL; return CeCreateDatabaseWithProps(pGuid, &dbInfo, 9, dbProp); }
こんな感じでデータベースはできたのですが、いくらデータを書いても肝心の着信履歴に表示されません。
いろいろ試してみると Professional版でもこの方法で clog.dbを作ると着信履歴が保存されないようです。 (最初に電話をかけると正しい clog.dbが作られる?)
ちょっとした違いなんだろうと思いますが、違いを見つけることができませんでした。
空のclog.dbを作るようなツールがあるといいんですけどね。
0 件のコメント:
コメントを投稿