2010年2月8日月曜日

COMで GetAllUnreadEntries は使えなかった...

懇談室のこのエントリについて Notes 8 で追加された未読文書に関するメソッドは使えないものかと試してみました。

「メモ帳」等のテキストエディタを開き、次のコードを .vbs という拡張子で適当なフォルダに保存します。
Dim ss
Set ss =CreateObject("Lotus.NotesSession")
Call ss.Initialize

Dim dir
Set dir = ss.GetDbDirectory("")

Dim db
Set db = dir.OpenMailDatabase

Dim vw
Set vw = db.GetView("($Inbox)")

'Dim vc
'Set vc = vw.GetAllUnreadEntries(ss.UserName)
'MsgBox "未読件数 : " & Cstr(vc.Count), , db.Title

Dim nav
Set nav = vw.CreateViewNav

Dim ent
Set ent = nav.GetFirst

Dim v
v = ent.ColumnValues
MsgBox v(6), , ""

Set v = Nothing
Set ent = Nothing
Set nav = Nothing
'Set vc = Nothing
Set vw = Nothing
Set db = Nothing
Set dir = Nothing
Set ss = Nothing
.vbs ファイルをダブルクリックして実行すると、自身のメールアプリケーションにある受信ボックスにある最初のエントリのタイトルを表示します。

実行するとき、Lotus Notes は起動していなくてもいいのですが、実行するPCには Lotus Notes がインストールされ、セットアップが完了していなければなりません。

上記コードから Set vc = vw.GetAllUnreadEntries(ss.UserName) の1文字目についているコーテーションをとって実行すると次のエラーが表示されます。

オブジェクトでサポートされていないプロパティまたはメソッドです。: 'GetAllUnreadEntries'
コード: 800A01B6
ソース: Microsoft VBScript 実行時エラー

Notes 8.0.1 が導入されているクライアントPCでは COM で GetAllUnreadEntries は使えませんでした。
ちなみに NotesDatabase.GetAllReadDocuments も同様のエラーになりました。

COM でサポートされていれば、上記のスレ主さんも「将来は実現できる」と希望がもてたでしょうに...orz

0 件のコメント:

コメントを投稿