■Eメール表示
以下のレジストリに未読件数が保存されているので、数値が増えたかどうかをタイマーで監視しています。
HKEY_CURRENT_USER\Software\Sharp\STMail\Accounts\アカウント名\NoRead
数値が増えた場合は、W-ZERO3メールのデータを読みに行ってます。
http://ameblo.jp/willcom-phs/entry-10088452273.html
このソフトの小窓ですが、非アクティブになったとき消してます。ところがEメール受信完了時に表示されるダイアログメッセージで小窓が非アクティブになってしまう。そこで、GetForegroundWindowでフォーカスウインドウを取得して、フォーカスを奪ったウインドウタイトルが「Eメール(ウィルコム)」のときだけフォーカスを奪い返すようにしました。
■アカウント設定
オンラインサインアップすると自局番号がアカウント名になるので、自局番号をデフォルトのアカウント名にしました。自局番号の取得は、ATコマンドを使うと若干時間がかかるので、以下のレジストリから取得しました。SIMを差替えた直後は自局番号表示するまで設定が変わらないんですが、その辺は気にしないことに(^^;
HKEY_CURRENT_USER\Software\Sharp\ShPhoneLib\MyPhoneNumber
W-ZERO3メールの設定でアカウント名を変更しても、Eメールデータが保存されるフォルダ名(アカウント名が含まれる)は変更されないようです。ソフトではアカウント名だけ設定すればいいようにしたかったんですが、保存先フォルダ名を取得する方法がわからなかったんで手動入力できるようにしました。
■連絡先の登録名表示
参照のMicrosoft.WindowsMobile.PocketOutlookを使いました。
情報の取得だけなら意外と簡単に出来ました。
Dim os As New OutlookSession
WmGetPhoneName = ""
'一致するデータを全件取得(telNo=参照したい電話番号)
Dim cs As ContactCollection = os.Contacts.Items.Restrict( _
"[MobileTelephoneNumber] = """ & telNo & """ OR " & _
…
"[HomeTelephoneNumber] = """ & telNo & """")
'一致するデータのうち最初の名前を取得
If cs.Count <> 0 Then
For Each c As Contact In cs
WmGetPhoneName = c.FileAs
Exit For
Next
End If
※インデントに全角スペースを使ってます。コピペ時は半角に変換して下さい。
テクニカルノート19: Pocket Outlook ファイルへアクセス
http://www.nsbasic.com/ce/Japanese/support/TechNotes/TN19.htm
POOM(らくがきさん) Pocket Outlookを利用するC#のソースを参考にさせてもらいました。
http://www.wildtree.jp/~araki/rakugaki/2006/02/poom.html
■縦横切替
画面の縦横切替時に、Resizeイベントが降ってくるんですが、このツールの小窓のようにサイズを固定(全画面でない)にしているとResizeイベントが降ってこないようです。小窓表示時は位置調整に対応しましたが、小窓表示中に縦横切替場合の方法は調査中です。